【发布时间】:2018-10-17 14:58:45
【问题描述】:
我正在尝试为以下场景首次设置 try-catch。目前我在 route 中有一个,在 server.js 中,如果有来自 的 error >controller,即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)
})
}
【问题讨论】:
标签: node.js controller routes try-catch