【发布时间】:2021-10-21 19:39:15
【问题描述】:
我使用的是 nests 框架,mongodb 和 mongoose 的版本如下所示。 详细错误请参考截图。
版本
"mongodb": "4.0.0",
"mongoose": "5.5.12",
用户文档模块
import { Module } from '@nestjs/common';
import { UserDocumentsService } from './user-documents.service';
import { UserDocumentsController } from './user-documents.controller';
import { MongooseModule } from '@nestjs/mongoose';
import { UserDocumentsSchema } from './schema/user-documents.schema';
@Module({
imports: [
// showing error on this line
MongooseModule.forFeature([
{ name: 'UserDocument', schema: UserDocumentsSchema },
]),
],
controllers: [UserDocumentsController],
providers: [UserDocumentsService],
})
export class UserDocumentsModule {}
App.module.ts
@Module({
imports: [
MongooseModule.forRootAsync({
imports: [SharedModule],
useFactory: async (configService: ConfigService) => ({
uri: configService.mongoDBName(),
useNewUrlParser: true,
useFindAndModify: false,
}),
inject: [ConfigService],
}),
UserDocumentsModule,
],
providers: [AppGateway],
})
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer): MiddlewareConsumer | void {
consumer.apply(contextMiddleware).forRoutes('*');
}
}
更新 我认为模式文件中的猫鼬导入有问题。它说“找不到模块'mongoose'的声明”。
我尝试删除并重新安装 mongoose 及其类型。但现在它显示了新的错误。
我尝试了这篇文章中提到的解决方案: Node.js heap out of memory
但这对我也不起作用。 我正在使用配置为 8GB 的 Mac-M1。
更新 现在这个问题已经解决了。该项目在节点 v10.24.1 上运行,我使用的是节点 v16.6.2。 使用 NVM 降级 node 版本后,此问题消失。
【问题讨论】:
-
你的 app.module.ts 怎么样?请将其添加到您的问题中。
-
@PauloFabrício 请看一看。
-
为什么要将
SharedModule导入MongooseModule?一般来说,您必须从@nestjs/config导入ConfigModule。这能解决您的问题吗? -
@LarsFlieger 即使从猫鼬导入中删除共享模块后,问题仍然存在。我不认为这应该是一个问题。