我读了这个链接http://theholmesoffice.com/mongoose-and-node-js-tutorial/ 这里的文章有一个代码:猫鼬ODM使用
exports.teamlist = function(gname,callback){
db.once('open', function(){
var teamSchema = new mongoose.Schema({
country: String,
GroupName: String
});
var Team = db.model('Team', teamSchema);
Team.find({'GroupName':gname}, function (err, teams) {
if(err){
onErr(err,callback);
}else{
mongoose.connection.close();
console.log(teams);
callback("",teams);
}
})// end Team.find
});// end db.once open
};
这调用db.once方法,而在其他地方使用它像这样
var mongoose = require('mongoose')
,Schema = mongoose.Schema
,ObjectId = Schema.ObjectId;
var postSchema = new Schema({
thread: ObjectId,
date: {type: Date, default: Date.now},
author: {type: String, default: 'Anon'},
post: String
});
module.exports = mongoose.model('Post', postSchema);
在路由器部分使用像这样
exports.show = (function(req, res) {
Thread.findOne({title: req.params.title}, function(error, thread) {
var posts = Post.find({thread: thread._id}, function(error, posts) {
res.send([{thread: thread, posts: posts}]);
});
})
});
而在app.js中有
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/norum');
我不明白为什么这两个具有不同的方法,哪一个是最好的一个,为什么?谁能帮帮我吗。我观察到的一件事是第二种方法是最常用的方法。所以请帮助我,哪一个是更好的方法。 我知道这主要是关于在Mongodb中创建方案,所以一次方法看起来好一点。但我仍然不确定。请帮忙。
谢谢..我现在明白了。真的感谢。 –
我写了一篇文章,作为构建堆栈部分的系列文章的一部分。这里的连接方法并不显示最佳实践 - 通常应该在应用程序启动时打开连接,并在结束时关闭连接。我写了一篇补充文章澄清了这一点:http://theholmesoffice.com/mongoose-connection-best-practice/ –