加载目录中所有实体

之后当我们创建更多实体时,都需要将一一它们添加到配置中的实体中,但是这不是很方便,所以我们可以设置整个目录,从中连接所有实体并在连接中使用:

  1. import { createConnection } from "typeorm";
  2. createConnection({
  3. type: "mysql",
  4. host: "localhost",
  5. port: 3306,
  6. username: "root",
  7. password: "admin",
  8. database: "test",
  9. entities: [__dirname + "/entity/*.js"],
  10. synchronize: true
  11. })
  12. .then(connection => {
  13. // 这里可以写实体操作相关的代码
  14. })
  15. .catch(error => console.log(error));

但要小心这种方法。如果使用的是ts-node,则需要指定.ts文件的路径。如果使用的是outDir,那么需要在outDir目录中指定.js文件的路径。如果使用outDir,当你删除或重命名实体时,请确保清除outDir目录并再次重新编译项目,因为当你删除.ts源文件时,其编译的.js版本不会从输出目录中删除,并且 TypeORM 依然会从outDir中加载这些文件,从而导致异常。