3

我在 JavaScript 中使用 typeorm 来表示节点和表达后端,如下所示:
https ://typeorm.github.io/usage-with-javascript.html

节点版本 v6.11.1

来自 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"

这是我得到的错误:

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".' }

这是模型:

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

这是我尝试访问数据库的代码:

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);
    });
  }

我究竟做错了什么?

4

4 回答 4

3

在我设法解决的Github的帮助下,我遇到了类似的问题。请阅读更多。

下面是我的ormconfig.ts,它在 src 文件夹中


import 'dotenv/config';
import { TypeOrmModuleOptions } from '@nestjs/typeorm';

const { DB_USERNAME, DB_PASSWORD, DB_NAME, DB_HOST } = process.env;

export const typeOrmConfig: TypeOrmModuleOptions = {
  type: 'postgres',
  username: DB_USERNAME,
  password: DB_PASSWORD,
  port: 5432,
  host: DB_HOST,
  database: DB_NAME,
  autoLoadEntities: true,
  logging: true,
  entities: ['dist/**/*.entity{ .ts,.js}'],
  migrations: ['dist/migrations/*{.ts,.js}'],
  migrationsRun: true,
  cli: {
    entitiesDir: 'src/**/*.entity{ .ts,.js}',
    migrationsDir: 'src/migrations',
  },
};

module.exports = typeOrmConfig;  # I added this line only
于 2021-05-25T03:04:06.157 回答
0

看起来我正在使用最新版本的 typeorm(0.1.0-alpha.35),当我删除它并安装稳定版本(0.0.11)时,错误消失了!

但现在我无法以某种方式使用连接,当我这样做时出现以下错误

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

在连接处

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)

谢谢您的帮助!

于 2017-08-30T22:31:06.693 回答
0

检查您是否将正确的配置值传递给 typeorm

于 2022-02-27T03:23:49.703 回答
0

你做了驱动安装步骤吗? https://typeorm.github.io/index.html#installation

有关安装 node-oracledb 的详细信息,请参阅此内容: https ://github.com/oracle/node-oracledb/blob/master/INSTALL.md

于 2017-08-30T20:46:20.687 回答