0
私はNodejsを初めて使用しています。プロセスは、関数からの応答が返るまで待機していません。 Nodejの非同期呼び出しのため。同期化する方法。私を助けてください。Nodejsでは、応答から戻るまでの待ち時間の処理方法
ここに私のコードここ
module.exports.signup = function(req, res){
console.log('signup');
User.findOne({'emails.email' : req.body.email}, function(err, doc) {
if (doc === null) {
var vr_token= genRandomString(16);
var ex_date = Date.now();
var user = new User();
user.emails.push({
email : req.body.email,
email_verification_token : vr_token,
verify_key_expire : ex_date });
user.save(function(err2,user1) {
if (!err2) {
var result = send_email.sync(vr_token);//process not waiting
if(result) {
res.json ({
status: 200,
message:"mail sent successfully",
data:user1
})
}
}
});
}
})
}
が
function send_email(vr_token){
var mailOpts = {
from: process.env.Mail_From_Addr,
to: 'xxxxxxxxxxxxx',
subject: 'Verify Your New Account Email',
html:'<p>Hello,</p>code : '+vr_token
};
mailgun.messages().send(mailOpts, function (err, response){
if (!err){
return true;
}else{
return false;
}
})
}
どのバージョンの 'nodejs'を使っていますか? – Malice
私はv6.11.2を使用しています – siva
そのようなコールバックhellを避けるためにpromise/asyncを試してください – saurabh