如何设置typeorm .env文件?

时间:2018-11-30 16:34:33

标签: javascript node.js environment-variables nestjs typeorm

我已经在nestjs入门项目中创建了一个ormconfig.env文件,并将this文档中的变量放入其中,并在此处添加了这一行

@Module({
  imports: [
    TypeOrmModule.forRoot(),
    TaskModule,
  ],
})
export class AppModule {
}`

控制台显示此错误:

Error: EACCES: permission denied, scandir '/Library/Application Support/Apple/AssetCache/Data' at Object.fs.readdirSync (fs.js:904:18)

我应该如何在nestjs中正确设置typeorm .env文件?

2 个答案:

答案 0 :(得分:2)

似乎节点正在尝试扫描您的 complete 文件系统中的实体文件,并且当然没有这样做的权限。

请确保您的项目文件夹中有TYPEORM_ENTITIES变量的路径。

例如,以递归方式在项目的.entity.ts文件夹下查找所有以src结尾的文件:

TYPEORM_ENTITIES = src/**/**.entity.ts

答案 1 :(得分:0)

我和这个问题有同样的问题。由于其他答案不能解决我的问题,因此我不得不四处张望。我将把解决方案留给像我一样对Webpack + TypeORM也有类似麻烦的人。

这是我需要做的工作。

import { createConnection, getConnectionManager } from "typeorm";

// For hot reload to work need to require files
import { Job } from "../jobs/job.entity";
import { JobAction } from "../jobs/jobaction.entity";

export const databaseProviders = [
  {
    provide: "DATABASE_CONNECTION",
    keepConnectionAlive: true,
    useFactory: async () => {
      try {
        const conn = await createConnection({
          ...connectionOption,
          // add entitities manually
          entities: [Job, JobAction],
        });
        return conn;
      } catch (err) {
        // If AlreadyHasActiveConnectionError occurs, return already existent connection
        if (err.name === "AlreadyHasActiveConnectionError") {
          const existentConn = getConnectionManager().get("default");
          return existentConn;
        }
        throw err;
      }
    },
  },
];