我讀了這個鏈接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/ –