2015-02-28 3 views
0

мне нужно возвращать результаты поиска из Mongoose.findOne переменной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'})}); 

ответ

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 }); 
    }) 
}); 
Смежные вопросы