使用Postman MERN堆栈在发布请求中收到404错误

时间:2020-08-08 17:33:41

标签: node.js mongodb express mongoose postman

我正在尝试为我的Model(用户)添加登录功能。我检查了数据库连接是否正常,因为其他路由都正常。就像我创建用户时一样,它可以成功创建用户。因此,我确定我的数据库或数据库连接没有任何问题。甚至我的代码也能正常工作。

我正在发送带有以下信息的POST请求

{
        "email":"sherryijan@gmail.com",
        "password":"6421515"
}

enter image description here

app.post("api/users/login", (req, res)=>{
    //find email
    User.findOne({email: req.body.email}, (err, user) =>{
        if(!user) return res.json({
            loginSuccess: false,
            message: "Auth Failed, email not found"
        });
        //compare password

        user.comparePassword(req.body.password, (err, isMatch) => {
            if(!isMatch){
                return res.json({loginSuccess:false, message:"wrong password"})
            }
        })
        //generate token
        user.generateToken((err, user)=>{
             if(err) return res.status(400).send(err);
             res.cookie("x_auth", user.token)
                .status(200)
                .json({
                    loginSuccess: true
                })
        })
    })
})

显示的错误是

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <title>Error</title>
</head>

<body>
    <pre>Cannot POST /api/users/login</pre>
</body>

</html>

我正在使用邮递员。

1 个答案:

答案 0 :(得分:0)

您遇到的问题在这里:app.post("api/users/login", (req, res)=>{。您的路径并非以/开头,这意味着您的快速应用程序根本不会公开该路径供您的客户(邮递员)使用。

你怎么知道发生了什么事?

响应代码为404,这意味着该资源不存在。因此,您首先要看的是路径。邮递员中的一位与快递员中的一位不符。