ошибка перьев-мангустов: «Вы должны предоставить модель мангуста» - PullRequest
0 голосов
/ 31 августа 2018

Я пытаюсь использовать перо и хочу использовать mongoose для подключения и взаимодействия с mongodb. Я создал простую модель message.js, которая мне требуется в моем app.js. Но когда я запускаю свое приложение, я получаю эту ошибку, после которой происходит сбой:

C:\Users\someuser\development\myapp\node_modules\feathers-mongoose\lib\service.js:17
      throw new Error('You must provide a Mongoose Model');
      ^

Error: You must provide a Mongoose Model
    at new Service (C:\Users\someuser\development\myapp\node_modules\feathers-mongoose\lib\service.js:17:13)
    at init (C:\Users\someuser\development\myapp\node_modules\feathers-mongoose\lib\service.js:326:10)
    at Object.<anonymous> (C:\Users\someuser\development\myapp\app.js:61:22)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Function.Module.runMain (module.js:693:10)
    at startup (bootstrap_node.js:191:16)
    at bootstrap_node.js:612:3

Вот как выглядит моя модель:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var messageSchema = new Schema({
    text:  String,
    author: String,
    date: { type: Date, default: Date.now }
});

var Message = mongoose.model('Message', messageSchema);
module.exports = Message;

А по моему app.js:

const MessageModel = require('./models/message');

Я зарегистрировал то, что хранится внутри MessageModel, и получил:

Model: {"_id":"5b8936062f2e201d1852179e","date":"2018-08-31T12:35:18.499Z"}

Я пытался найти проблему, но я не могу найти ничего полезного, и, насколько я знаю, с моей моделью все в порядке.

1 Ответ

0 голосов
/ 09 ноября 2018

ПРАВО: Вы должны зарегистрировать свой сервис следующим образом:

const MessageModel = require('./models/message');    
app.use('/messages', service({
      Model: MessageModel
    }));

В примерах они называют MessageModel просто моделью:

const Model = require('./models/message');

Чтобы они могли это сделать:

app.use('/messages', service({
  Model
}));

Это так же, как:

app.use('/messages', service({
  Model: Model
}));

НЕПРАВИЛЬНО: Вы, вероятно, регистрируете свой сервис следующим образом:

app.use('/messages', service({
  MessageModel
}));
...