簡體   English   中英

依賴注入巴別塔巢,特別是貓鼬

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM