代码之家  ›  专栏  ›  技术社区  ›  Johan

res.status不是一个函数-express

  •  0
  • Johan  · 技术社区  · 2 年前

    我有一个获取用户详细信息的途径。这是控制器:

    module.exports.getUser = (req, res) => {
        if (req.method == "GET") {
            const userDetails = `SELECT * FROM users WHERE id = ${req.params.id}`;
    
            sql.query(userDetails, function (err, res) {
                if (res.length > 0) {
                    res.status(200).json({ res })
                } else {
                    res.status(401).json({ message: "Error with this id !" })
                }
            })
        }
    }
    

    当我向url发出请求时,出现以下错误:

    TypeError: res.status is not a function
        at Query.<anonymous> (/Applications/MAMP/htdocs/my-app/controllers/auth.controller.js:9:21)
    

    第九行是 res.status(200).json({ res })

    这个方法有错误吗?

    非常感谢。

    1 回复  |  直到 2 年前
        1
  •  0
  •   Shivam    2 年前

    根据你的评论,如果我正确理解你的问题。您必须更改在中使用的变量 sql query callback 而不是你收到的那个 getUser 作用

    module.exports.getUser = (req, res) => {
        if (req.method == "GET") {
            const userDetails = `SELECT * FROM users WHERE id = ${req.params.id}`;
    
            sql.query(userDetails, function (err, user) {
                if (user.length > 0) {
                    res.status(200).json({ user })
                } else {
                    res.status(401).json({ message: "Error with this id !" })
                }
            })
        }
    }
    

    这样的办法应该行得通。