Node.js + Mongoose:模型/模式与db逻辑分离

时间:2012-08-04 15:08:01

标签: javascript node.js mongodb mongoose require

我有一个带有2个文件的示例node.js项目,我希望将Post-object存储到我的数据库中。 这是我的架构(在./schema/post.js中)

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

module.exports = function() {
    var Post = new Schema({
        title: String,
        body: String,
        date: Date
    });
    mongoose.model('Post', Post);
};

第二个文件是数据库逻辑(连接,保存新的post-object并断开连接)

var mongoose = require('mongoose'),
    Post = require('./schema/post.js');

mongoose.connect('mongodb://Thomas-PC/test');

var post = new Post();
post.title = 'asdfafsd';
post.body = 'asdfasdf';
post.date = Date.now();

post.save(function (err) {
  if (err) { throw err; }
    console.log('saved');
  mongoose.disconnect();
});

这不起作用。 我的问题是:如何在分离的文件中创建模型对象的新实例?

1 个答案:

答案 0 :(得分:2)

这不起作用。你可以这样工作:

module.exports = function() {
var Post = new Schema({
    title: String,
    body: String,
    date: Date
});
return mongoose.model('Post', Post);
}

并且:

Post = require('./schema/post.js')()