[英]How to prevent non-blocking in Node.js?
這是我的代碼的一部分。
var project_url;
project_url = getProjectUrl(req,name);
var collection = db.get('project');
collection.insert({
"id" : projectId,
"name" : name,
"url" : project_url
}, function(err,doc){
if(err){
res.send("There was a problem");
}
});
var collection2 = db.get('project_details');
collection2.insert({
"id" : projectId,
"media" : media
}, function(err,doc){
if(err){
res.send("There was a problem");
}
});
結合使用Node.js和MongoDB,我想將數據插入數據庫AFTER函數getProjectUrl,該函數返回一個字符串值,該操作已完成。 但是,它異步運行,以便在getProjectUrl返回值之前執行collection.insert和collection2.insert。 因此,當我檢查數據庫時,project_url為null。 如何在getProjectUrl返回值之后執行插入?
例如,使您的函數具有回調的getProjectUrl
function getProjectUrl(req, name, callback) {
var result = 'foo'; // I'm not sure how you get it
callback(result);
}
接着
getProjectUrl(req, name, function(project_url) {
var collection = db.get('project');
collection.insert({
"id" : projectId,
"name" : name,
"url" : project_url
}, function(err,doc){
if(err){
res.send("There was a problem");
}
});
var collection2 = db.get('project_details');
collection2.insert({
"id" : projectId,
"media" : media
}, function(err,doc){
if(err){
res.send("There was a problem");
}
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.