2017-08-30 4 views
0

J'utilise typeorm en JavaScript pour le noeud et back-end express comme ici:
https://typeorm.github.io/usage-with-javascript.htmlMissingDriverError lorsque le type est oracle: en utilisant typeorm

version noeud v6.11.1
dipendencies de package.json

"@types/es6-shim": "^0.31.35", 
    "@types/node": "^8.0.25", 
    "async": "^2.5.0", 
    "body-parser": "^1.17.2", 
    "cors": "^2.8.4", 
    "express": "^4.15.4", 
    "oracledb": "^1.13.1", 
    "reflect-metadata": "^0.1.10", 
    "typeorm": "0.1.0-alpha.35" 
Ce

est l'erreur que je reçois:

Error: { Error 
     at new MissingDriverError (C:\Users\shodh\projects\NAPPATracking\node_modules\typeorm\error\MissingDriverError.js:22:23) 
     at DriverFactory.create (C:\Users\shodh\projects\NAPPATracking\node_modules\typeorm\driver\DriverFactory.js:40:23) 
     at new Connection (C:\Users\shodh\projects\NAPPATracking\node_modules\typeorm\connection\Connection.js:81:59) 
     at ConnectionManager.create (C:\Users\shodh\projects\NAPPATracking\node_modules\typeorm\connection\ConnectionManager.js:56:26) 
     at Object.<anonymous> (...\node_modules\typeorm\index.js:205:70) 
     at step (...\node_modules\typeorm\index.js:32:23) 
     at Object.next (...\node_modules\typeorm\index.js:13:53) 
     at ...\node_modules\typeorm\index.js:7:71 
     at __awaiter (...\node_modules\typeorm\index.js:3:12) 
     at Object.createConnection (...\node_modules\typeorm\index.js:196:12) 
     name: 'MissingDriverError', 
     message: 'Wrong driver undefined given. Supported drivers are: "mysql", "postgres", "mssql", "oracle", "mariadb", "sqlite".' } 

Voici le m odel:

module.exports = { 
    name: "reagentsandconditionsnames", 
    columns: { 
     reagentnameid: { 
      primary: true, 
      type: "int", 
      generated: true 
     }, 
     reagentname: { 
      type: "string" 
     }, 
     datatype: { 
      type: "string" 
     }, 
     displayordernumber: { 
      type: "int" 
     } 
    } 
}; 

Voici le code où je suis en train d'accéder à la base de données:

var typeorm = require("typeorm"); // import * as typeorm from "typeorm"; 
const oracledb = require('oracledb'); 
var reagentsandconditionsnames = require("./reagentsandconditionsnames"); // import {Post} from "./model/Post"; 
module.exports.getAllRandC = (callback) => { 
    typeorm.createConnection({ 
     driver: { 
      type: "oracle", 
      host: "localhost", 
      port: 1521, 
      username: "uname", 
      password: "pwd", 
      database: "dev" 
     }, 
     entitySchemas: [ 
      reagentsandconditionsnames 
     ], 
     autoSchemaSync: true 
    }).then(function (connection) { 
     console.log(connection); 
     // let rncnames = await connection.entityManager.find(reagentsandconditionsnames); 
     // console.log(rncnames); 
     callback(null, JSON.stringify("rncnames")); 
     }).catch(function(error) { 
     console.log("Error: ", error); 
    }); 
    } 

Qu'est-ce que je fais mal?

Répondre

0

Avez-vous effectué l'étape d'installation du pilote? https://typeorm.github.io/index.html#installation

Voir ce pour plus de détails sur l'installation de nœud-oracledb: https://github.com/oracle/node-oracledb/blob/master/INSTALL.md

+0

oui je l'ai fait, je peux obtenir des données de base de données sans utiliser son typeorm quand j'utilise le typeorm en quelque sorte il ne reconnaît pas le pilote –

+0

j'ai essayé avec d'autres types de base de données sans les installer et c'est la même erreur! –

+0

J'ai également essayé de commenter toutes les lignes de pilotes et je reçois toujours la même erreur semble ne pas même lire les informations du pilote. –

0

On dirait que j'utilisais la dernière version de typeorm (0.1.0-alpha.35) lorsque j'ai enlevé et installé que la version stable (0.0.11) les erreurs sont parties!

mais maintenant je ne peux pas utiliser la connexion d'une certaine manière, je reçois l'erreur suivante quand je fais

let rncnames = await connection.entityManager.find(reagentsandconditionsnames); 

à la connexion

let rncnames = await connection.entityManager.find(reagentsandconditionsnames); 

SyntaxError: Unexpected identifier 
    at createScript (vm.js:56:10) 
    at Object.runInThisContext (vm.js:97:10) 
    at Module._compile (module.js:542:28) 
    at Object.Module._extensions..js (module.js:579:10) 
    at Module.load (module.js:487:32) 
    at tryModuleLoad (module.js:446:12) 
    at Function.Module._load (module.js:438:3) 
    at Module.require (module.js:497:17) 
    at require (internal/module.js:20:19) 

merci pour l'aide!

+0

Quelle version de Node.js utilisez-vous? Vous avez besoin de v7.6 + pour utiliser 'await'. –

+0

oui c'était l'un des problèmes, donc je suis retourné et essayer de faire fonctionner la chose comme dans le même exemple ici https://github.com/typeorm/javascript-example/tree/master/src/app3-es6 –