Есть ли ошибка в генераторе Feathers JS? - PullRequest
0 голосов
/ 26 мая 2020

При создании службы с перьями js файл модели выглядит следующим образом

import { Application } from '../declarations';

export default function (app: Application) {
  const modelName = 'comments';
  const mongooseClient = app.get('mongooseClient');
  const { Schema } = mongooseClient;
  const schema = new Schema({
    text: { type: String, required: true }
  }, {
    timestamps: true
  });

  // This is necessary to avoid model compilation errors in watch mode
  // see https://mongoosejs.com/docs/api/connection.html#connection_Connection-deleteModel
  if (mongooseClient.modelNames().includes(modelName)) {
    mongooseClient.deleteModel(modelName);
  }
  return mongooseClient.model(modelName, schema);
}

Тип mongooseClient Mongoose, а в документации указано, что deleteModel находится под Connection.prototype.deleteModel()

Разве в строке не должно быть mongooseClient.connection.deleteModel(modelName); ??

1 Ответ

1 голос
/ 01 июня 2020

Нет, не должно

Если вы посмотрите на файл mongoose.js в папке root, вы увидите, что 'mongooseClient' устанавливается после mongoose.connect:

const mon goose = require ('mon goose');

module.exports = function (app) {
  mongoose.connect(
    app.get('mongodb'),
    { useCreateIndex: true, useNewUrlParser: true, useUnifiedTopology: true }
  );
  mongoose.Promise = global.Promise;

  app.set('mongooseClient', mongoose);
};

Таким образом, это часть Connection.prototype.

...