Ami*_*ube 4 javascript mongoose node.js typescript nestjs
我想在 NestJS 服务中注入 mongo db 模型。该模型仅存在于根模块中。
import { Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/mongoose';
import { Model } from 'mongoose';
import { IFolderModel } from './interfaces/folder.interface';
@Injectable()
export class FolderService {
constructor(@InjectModel('IFolder') private folderModel: Model<IFolderModel>) {
}
async create(folderInstance: IFolderModel): Promise<IFolderModel> {
const folderModelToBeSaved = new this.folderModel(folderInstance);
return await folderModelToBeSaved.save();
}
async findAll(): Promise<IFolderModel[]> {
return await this.folderModel.find().exec();
}
}
Run Code Online (Sandbox Code Playgroud)
我在使用启动应用程序时收到以下错误npm run start
Error: Nest can't resolve dependencies of the FolderService (?). Please make sure that the argument at index [0] is available in the AppModule context.
应用程序模块的内容
let mongodb = env.mongodb;
let url = `mongodb://${mongodb.user}:${mongodb.pwd}@${mongodb.host}:${mongodb.port}/${mongodb.dbName}`;
@Module({
imports: [MongooseModule.forRoot(url)],
controllers: [AppController, FolderController],
providers: [AppService, FolderService],
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)
您必须另外导入您的架构MongooseModule.forFeature。通常,您将在根模块中设置数据库连接,然后将架构导入专用功能模块中。这就是为什么导入是分开的。
MongooseModule.forFeature([{ name: 'Folder', schema: FolderSchema }])
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅mongo 文档。
| 归档时间: |
|
| 查看次数: |
17150 次 |
| 最近记录: |