(Node.js / Express.js) Ошибка: схема не была зарегистрирована для модели "документ" - PullRequest
11 голосов
/ 28 февраля 2011

Я пытался пройтись по учебному пособию по нодпаду на Dailyjs.com (найдено здесь ).В конце концов я остановился, когда получил это после попытки выполнить (после шага 2 тут):

Error: Schema hasn't been registered for model "Document".
Use Mongoose.define(name, schema)
    at Mongoose.model     (/usr/local/lib/node/.npm/mongoose/1.0.16/package/lib/mongoose/index.js:138:13)
    at Object.<anonymous> (/root/Repos/nodepad/models.js:3:10)
    at Module._compile (module.js:374:26)
    at Object..js (module.js:380:10)
    at Module.load (module.js:306:31)
    at Function._load (module.js:272:10)
    at require (module.js:318:19)
    at Object.<anonymous> (/root/Repos/nodepad/app.js:10:16)
    at Module._compile (module.js:374:26)
    at Object..js (module.js:380:10)

В основном я здесь полный нуб, так что мне действительно нужно не столькосделайте это, чтобы заставить это работать "ответ, но если вы не возражаете, объяснение того, что является истинной причиной этой ошибки.При необходимости я могу опубликовать текущий код, который у меня есть, и извиниться, если это какой-то мучительно простой вопрос.

1 Ответ

25 голосов
/ 28 февраля 2011

Начиная с Mongoose 1.0, вы должны определять свои модели по-другому.Чтобы увидеть, что это применимо к нодпаду, я рекомендую прочитать источник нодпада (особенно файл models.js).

Пример:

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

var User = new Schema({
  email: {
    type: String,
    index: { unique: true }
  },
  name: String,
  lastseen: Date,
  isonline: Boolean,
  hashed_password: String,
  salt: String
});

mongoose.model('User', User);

К сожалению,«старые» посты (абсолютно потрясающего) руководства DailyJS устарели.Алекс Юг опубликовал несколько последующих постов, чтобы перенести существующее руководство на Mongoose 1.0 (в котором были внесены действительно серьезные изменения API), см. здесь .

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