app.get('/sitemap',function(request,response){
var query = JSON.stringify(request.query.transaction_id).replace(/(^"|"$)/g, '').replace(/\s+/, "") ;
var transaction_details = MongoClient.connect(uri,function(err,db){
db.collection('TransactionStatus',function(err,collection){
if(err) {
throw err;
} else {
collection.findOne({_id:query},function(err, doc){
return doc;
});
}
})
})
console.log(transaction_details);
response.render(path.join(__dirname+'/sitemap.ejs'),
{details:transaction_details}
);
});
使用变量transaction_details渲染文件时,我得到**** undefined ****。我无法在transaction_details中设置返回值。我是Nodejs的新手,所以任何帮助或建议都将不胜感激。
提前感谢您的帮助:)
答案 0 :(得分:0)
你不能像这样的异步电话return
......你需要利用回调:
app.get('/sitemap',function(request,response){
var query = JSON.stringify(request.query.transaction_id).replace(/(^"|"$)/g, '').replace(/\s+/, "") ;
var transaction_details = function(callback) {
MongoClient.connect(uri,function(err,db) {
db.collection('TransactionStatus',function(err,collection){
if(err) {
throw err;
} else {
collection.findOne({_id:query},function(err, doc){
callback(doc);
});
}
})
})
}
transaction_details(function(data) {
response.render(path.join(__dirname+'/sitemap.ejs'),
{details:data}
);
});
});