我已经在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文件?
答案 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;
}
},
},
];