Подтвердить что ты не робот

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

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

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)

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

models.js:

var mongoose = require('mongoose');

mongoose.model('Document', {
    properties: ['title', 'data', 'tags'],
    indexes:    ['title']
});

exports.Document = function(db) {
    return db.model('Document');
};
4b9b3361

Ответ 1

Начиная с Mongoose 1.0, вы должны определить свои модели по-другому. Чтобы увидеть, что применяется к nodepad, я рекомендую прочитать источник nodepad (особенно файл 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), см. здесь.