CSt*_*mph 11 mongodb node.js express
我试图通过Dailyjs.com上的nodepad教程(在这里找到).当我在尝试执行时(在tut的第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)
Run Code Online (Sandbox Code Playgroud)
我在这里大部分时间都是一个完整的菜鸟,所以我真正需要的不是"做这个让它成功"的答案,但是如果你不介意的话,可以解释一下这个错误的真正原因是什么.如果需要,我可以发布我现在拥有的实际代码,如果这是一个令人痛苦的简单问题,我会道歉.
models.js:
var mongoose = require('mongoose');
mongoose.model('Document', {
properties: ['title', 'data', 'tags'],
indexes: ['title']
});
exports.Document = function(db) {
return db.model('Document');
};
Run Code Online (Sandbox Code Playgroud)
sch*_*rmu 25
从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);
Run Code Online (Sandbox Code Playgroud)
可悲的是,(绝对令人敬畏的)DailyJS教程的"老"博客有点过时了.Alex Youg发布了一些后续帖子,将现有教程迁移到Mongoose 1.0(引入了非常繁重的API更改),请参阅此处.
| 归档时间: |
|
| 查看次数: |
7261 次 |
| 最近记录: |