【问题标题】:Mongoose.findOne doesn't return anything, why?Mongoose.findOne 没有返回任何东西,为什么?
【发布时间】:2015-02-28 00:56:35
【问题描述】:

我需要将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'})});

【问题讨论】:

    标签: javascript node.js function mongoose return


    【解决方案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 });
        })
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 2023-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多