Зависимость инъекции гнезда в вавилон, особенно с мангустом - PullRequest
0 голосов
/ 12 октября 2018

Я следую руководству NestJ о Mongoose, но с Бабелем я сталкиваюсь с ошибкой, пытаясь внедрить мою схему.Код довольно прост, и он такой же, как примеры машинописи, но с 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?

Заранее большое спасибо, любые советы или советы приветствуются и принимаются

С уважением

1 Ответ

0 голосов
/ 21 октября 2018

Произошла ошибка:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...