【发布时间】:2019-02-06 02:53:49
【问题描述】:
我有以下函数,它读取一个数组并将它传递给我的服务器
let storedProcedure = async (params, storedProcedureName) => {
const pool = await getOrCreatePool()
let request = await pool.request()
params.forEach((parameter) => {
parameterDirection = parameter.isOutput ? 'output' : 'input';
request = request[parameterDirection](parameter.name, parameter.type, parameter.value)
});
try {
return await request.execute(storedProcedureName)
} catch(err) {
console.error('StoredProcedure error', err);
return null;
}
}
我这样称呼它
apiRoutes.put('/update/:leadid', function(req, res) {
var param = validateUpdateLead(req.body, req.params.leadid)
var promise = sqlUtil.storedProcedure(param,'sp_Leads_UPD')
promise.then((result) =>
{
console.log('LeadID:' + req.params.leadid + ' Updated - ' + result.rowsAffected[0] + ' Rows Effected')
res.json({ success: true, RowsAffected : result.rowsAffected[0], UpdatedLeadID :req.params.leadid }).status(200)
})
.catch(err)
{
res.send('error':err )
}
})
当我这样做时,我的系统 nodeJs 抱怨“ReferenceError: err is not defined”所以问题是我如何将错误从我的函数传递给调用并捕获它?当我的电话因为我得到的一个或一个或一个原因而失败时 (node:1512) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'leadid' of undefined 在 promise.then (C:\nodeRoot\CRM-NodeJS\routes\leads.js:55:52) 在 process._tickCallback (internal/process/next_tick.js:68:7) (节点:1512) UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。 (拒绝 ID:1) 所以我希望这很容易解决
【问题讨论】: