我需要将搜索结果从Mongoose.findOne
返回到变量
results = Lang.findOne({page: params.page,lang: params.lang, param: params.param}, function(err, lang) {
if( err || !lang) {
console.log("No translation!");
} else {
return lang.trans;
};
}
有办法做到这一点吗?我尝试了几个小时来找到异步解决方案。功能,没有...... 我还发现了文章,据说这是不可能的,但有没有其他方法可以实现这一点?
这对我来说非常重要,因为我需要这个多语言项目,我需要翻译:
res.render('index',{titleGen : req.__({page:'home', lang:req.locale, param:'hello'})});
答案 0 :(得分:1)
以下是解决方案:
exports.getLang = getLang = function(params,callback){
console.log('received: '+params.page+' + '+params.lang+' + '+params.param);
Lang.findOne({page: params.page, lang: params.lang, param: params.param},function(err, lang){
if(err)
console.log(err)
else{
callback(lang.trans);
}
});
}
和路由:
router.get('/', function(req, res) {
req.__({page:'home', lang:req.locale, param:'hello'},function(text){
res.render('index',{titleGen : text });
})
});