[英]How to use only dependency injection container from Nest.js framework?
[英]Dependency injection of nest in babel particularly with mongoose
我正在遵循有关Mongoose的NestJs指南,但是使用Babel时,我在尝试注入我的架构时遇到错误。 代码非常简单,与打字稿示例相同,但带有babel。
这是我的主要模块
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { EventModule } from './events/event-module';
@Module({
imports: [
MongooseModule.forRoot(process.env.MONGO_URI),
EventModule,
],
})
export class AppModule {}
这是最简单的架构示例
import { Schema } from 'mongoose';
export const EventSchema = new Schema({
title: String,
description: Number,
});
模块事件模块:
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { EventController } from "./event-controller";
import { EventService } from "./event-service";
import { EventSchema } from '../schemas/event-schema';
@Module({
imports: [
MongooseModule.forFeature([
{ name: 'Event', schema: EventSchema }
])
],
controllers: [EventController],
providers: [
EventService,
],
})
export class EventModule {}
最后,我要使用架构的服务:
import { Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/mongoose';
import { EventSchema } from '../schemas/event-schema';
@Injectable()
export class EventService {
@InjectModel(EventSchema) eventModel;
async getAll() {
return await this.eventModel.find().exec();
}
}
问题是,当我从控制器调用getAll
时,事实证明eventModel
是未定义的! 实例化时不会引发任何错误。 引发的错误是:
TypeError: Cannot read property 'find' of undefined
at EventService._callee$ (D:\.../event-service.js:9:34)
at tryCatch (D:\...\node_modules\babel-polyfill\node_modules\regenerator-runtime\runtime.js:65:40)
难道在babel中,依赖注入对nestjs
吗? InjectModel
应该如何工作或如何与babel一起使用?
预先非常感谢您,任何建议或提示都将不胜感激并得到好评
问候
有一个错误:
import { Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/mongoose';
import { EventSchema } from '../schemas/event-schema';
@Injectable()
export class EventService {
@InjectModel(EventSchema) eventModel;
async getAll() {
return await this.eventModel.find().exec();
}
}
这条线
@InjectModel(EventSchema) eventModel;
应该是@InjectModel('Event') eventModel
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.