我在此链接http://theholmesoffice.com/mongoose-and-node-js-tutorial/中阅读了一篇文章, 这里有一段代码:
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 中创建方案有关,因此 one 方法看起来好一点。但我仍然不确定。请帮忙。