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

Posted

技术标签:

【中文标题】使用 Postman MERN 堆栈在发布请求上收到 404 错误【英文标题】:Receiving 404 error on Post Request using Postman MERN Stack 【发布时间】:2020-11-28 18:29:21 【问题描述】:

我正在尝试为我的模型(用户)添加登录功能。我检查了我的数据库连接,它运行良好,因为其他路由运行良好。就像我创建用户时一样,它会成功创建用户。所以我确信我的数据库或我的数据库连接没有问题。甚至少数我的代码都可以正常工作。

我正在发送带有以下信息的 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】:

您遇到的问题在这里:app.post("api/users/login", (req, res)=&gt;。您的路径不是以 / 开头的,这意味着您的 express 应用根本不会公开该路径供您的客户(邮递员)使用。

你怎么知道发生了什么:

响应码是404,这意味着资源不存在。所以你首先要看的是路径。 postman 中的那个和 express 中的不匹配。

【讨论】:

非常感谢 我所能做的就是嘲笑我...一直以来,我都在谷歌上徘徊和冲浪,并在墙上撞到了正在发生的事情....原来在我的路线中缺少正斜杠......非常感谢......我现在唯一可以问你的是请对我的问题投赞成票。这样我就可以成长为社区成员..... 所有这些看似愚蠢的问题只是学习过程的一部分。

以上是关于使用 Postman MERN 堆栈在发布请求上收到 404 错误的主要内容,如果未能解决你的问题,请参考以下文章

如何在 mern 堆栈中发布对特定数组字段的请求

使用 MERN 堆栈从服务器到客户端获取数据的错误

部署到 heroku - 白屏 - 没有明显错误 - MERN 堆栈在本地工作得很好,包括 API 请求 - 已经尝试了 27 次部署

在 MERN 上等待发布请求

MERN 堆栈中的 CSRF 实现

获取“被 CORS 策略阻止:请求的资源上不存在 'Access-Control-Allow-Origin' 标头。”使用 Axios 使用 MERN 堆栈