node.js中的try-catch设置

时间:2018-05-07 18:26:56

标签: node.js controller routes try-catch

我正在尝试为以下方案首次设置 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)
    })
}

0 个答案:

没有答案