我正在尝试为以下方案首次设置 try-catch 。目前我在路径中有一个位于 server.js 中,并且如果来自的错误,则无法捕获>控制器, user.js 。
我也有疑问是否需要/我是否也可以为控制器设置try-catch。
请帮我正确设置。
server.js:
app.post('/login-user', (req, res) => {
try {
user.loginUser(req.body, (err, jResult) => {
let token = jwt.sign({
user: jResult,
}, "supersecret")
console.log(jResult)
return res.send(token)
})
} catch (err) {
console.log(err)
return res.send(jResult)
}
})
user.js的:
user.loginUser = (jUserData, fCallback) => {
var aData = [
jUserData.email,
jUserData.mobile_number,
1
]
var sQuery = 'SELECT * FROM users WHERE email = ? AND mobile_number = ? AND active = ?'
db.each(sQuery, aData, function (err, jRow) {
console.log(jRow)
if (err) {
console.log('BAD, user not logged in')
return fCallback(true, {
status: "INTERNAL SERVER ERROR"
})
}
if (!Object.keys(jRow).length) {
console.log('NOT FOUND')
return fCallback(true, {
status: "NOT FOUND"
})
}
console.log('GREAT, user logged in')
return fCallback(false, jRow)
console.log(jRow)
})
}