【发布时间】:2017-08-11 13:32:33
【问题描述】:
这是我在节点中的代码 - 表示一旦 sql 事务成功完成就发送电子邮件!
router.post('/',function(req,res,next){
sql.connect(config).then(function() {
var request = new sql.Request();
request.query(`update projects set CIP_NCIP= '${req.body.cip_noncip}' , Capital_Expense ='${req.body.capital_expensed}' , Approval_Status ='Approved' where Project_ID ='${req.body.projid}'`).then(function(recordset) {
console.log('Recordset: ' + recordset);
console.log('Affected: ' + request.rowsAffected);
}).catch(function(err) {
if(err) {
console.log('Request error: ' + err);
}
})
}).then(
transporter.sendMail(mailOptions, function(error, info){
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
})).catch(function(err) {
if (err) {
console.log('SQL Connection Error: ' + err);
}
});
});
sql 插入似乎可以工作,但它没有执行这段代码
transporter.sendMail(mailOptions, function(error, info){
if (error) {
console.log(error);
} else {
console.log('Email sent: ' + info.response);
}
})
回调和 es5 相当新。欢迎提出建议
【问题讨论】:
-
我可以看到几个问题,但就代码执行而言,它看起来应该可以工作 - 如果您将
sendMail调用移动到request.query的回调中,它在那里工作正常吗?还有mailOptions来自哪里?在代码中没有看到,我们是否假设它存在并且配置正确? -
这是整个js文件itextpad.com/nXB8DStC2s
-
即使是 request.query 回调中的 console.log('test') 也不起作用,这很令人困惑。
-
试试我建议的代码,它应该可以帮助你缩小问题的范围。
标签: javascript node.js express callback