【问题标题】:Typeorm entities not working with javascriptTypeorm 实体不适用于 javascript
【发布时间】:2020-10-31 21:14:27
【问题描述】:

我正在尝试使用带有 javascript 的 typeorm 创建一个项目,连接正常,但 typeorm 找不到我的实体。

我正在按照类型文档提供的示例进行操作: https://typeorm.io/#/usage-with-javascript

app.js:

typeorm.createConnection({
  type: 'mysql',
  host: process.env.MYSQL_IP, // Docker Env
  port: process.env.MYSQL_INTERNAL_PORT,
  username: process.env.MYSQL_ROOT_USERNAME,
  password: process.env.MYSQL_ROOT_PASSWORD,
  database: process.env.MYSQL_DATABASE,
  synchronize: true,
  entities: [
    require('./Model/TestSchema.js'),
  ],
}).then((connection) => {
  const app = express();

  app.use(cors(CorsConfigs));
  app.use(bodyParser.json());
  app.use(bodyParser.urlencoded({ extended: false }));
  app.use(authentication);
  app.use(router);

  const testRepository = connection.getRepository('Category');
  const teste = { name: 'TypeScript' };

  app.listen(process.env.BACKEND_PORT, () => {
    console.log(`Rodando na porta: ${process.env.BACKEND_PORT.toString()}`);
  });
}).catch((error) => {
  console.log('Error: ', error);
});

模型/TestSchema.js:

module.exports = {
  name: 'Category',
  columns: {
    id: {
      primary: true,
      type: 'int',
      generated: true,
    },
    name: {
      type: 'string',
    },
  },
};

连接工作正常,问题和运行时显示:

错误:RepositoryNotFoundError:找不到“类别”的存储库。看起来这个实体没有在当前的“默认”连接中注册?

在新的 RepositoryNotFoundError (/app/src/error/RepositoryNotFoundError.ts:11:9)

在 EntityManager.getRepository (/app/src/entity-manager/EntityManager.ts:919:19)

在 Connection.getRepository (/app/src/connection/Connection.ts:346:29)

在 /app/src/app.js:32:37

在 processTicksAndRejections (internal/process/task_queues.js:93:5)

【问题讨论】:

    标签: javascript typeorm


    【解决方案1】:

    也许在

    entities: [
      require('./Model/TestSchema.js'),
    ],
    

    您需要删除文件路径上的.js 扩展名,如:

    entities: [
      require('./Model/TestSchema'),
    ],
    

    【讨论】:

    • 继续报同样的错误 :( 是不是 babel 的一些配置?
    • 尝试添加一些console.log('test')./Model/TestSchema 以检查它是否完全启动
    【解决方案2】:

    首先,任何将 TypeOrm 与 javascript 一起使用的人都应该阅读一次 this 文章,因为在大多数地方,文档都是关于如何将 TypeOrm 与 typescript 而不是 javascript 一起使用。

    Abner,请将您的 TestSchema.js 更改为:

    var EntitySchema = require("typeorm").EntitySchema;
    
    module.exports = new EntitySchema({
      name: "Category", 
      tableName: "Category",
      columns: {
        id: {
          primary: true,
          type: 'int',
          generated: true,
        },
        name: {
          type: 'string',
        },
      },
    });
    

    【讨论】:

      猜你喜欢
      • 2021-05-23
      • 1970-01-01
      • 2021-06-07
      • 1970-01-01
      • 1970-01-01
      • 2020-05-06
      • 2016-03-05
      • 2021-07-04
      • 2015-11-12
      相关资源
      最近更新 更多