【发布时间】:2012-12-24 09:58:53
【问题描述】:
我正在尝试创建一个列表来显示我数据库中的所有teams。我收到错误TypeError: Invalid select() argument. Must be a string or object. 谁能帮我弄清楚如何解决这个问题?我只是想用它来打印一个当前战队的名单,然后点击这个战队名单就可以基本编辑战队名称了!
所以在我的Schema Team 我有这个:
Team.statics.getAllMeta = function(cb){
var query = this.find({}, ['key', 'name'], cb);
return query.exec(cb);
};
然后在我的index.js routes 我有这个:
var getAllMeta = function(req, res, next){
Team.getAllMeta(function(err, teamsList){
if(!err && teamsList){
req.teamsList = teamsList;
}
next(err);
});
};
这样我就可以像这样在routes 我的team 页面中调用:
app.get('/team', getAllMeta, function(req, res){
util.log('Serving request for url[GET] ' + req.route.path);
res.render('team', {'teamsList' : req.teamsList});
});
这里只是参考index.js中的其他相关部分来自routes
app.get('/', function(req, res){
logger.log('Serving request for url [GET]' + req.route.path)
Team.getAll(function(err, allTeams){
if(!err && allTeams){
res.render('index', {'allTeams' : allTeams});
}else{
util.log('Error fetching team from database : ' + err);
res.render('error');
}
});
});
app.get('/show/team/:key', function(req,res){
Team.findByKey(req.params.key, function(err, teamData){
if(!err && teamData){
teamData = teamData[0];
res.json({
'retStatus' : 'success',
'teamData' : teamData
});
} else {
util.log('Error in fetchin Team by key: ' + req.params.key);
res.json({
'retStatus' : 'failure',
'msg' : 'Error in fetching Team by key: ' + req.params.key
});
}
});
});
【问题讨论】:
标签: javascript node.js mongodb mongoose