使用 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)=>
。您的路径不是以 /
开头的,这意味着您的 express 应用根本不会公开该路径供您的客户(邮递员)使用。
你怎么知道发生了什么:
响应码是404
,这意味着资源不存在。所以你首先要看的是路径。 postman 中的那个和 express 中的不匹配。
【讨论】:
非常感谢 我所能做的就是嘲笑我...一直以来,我都在谷歌上徘徊和冲浪,并在墙上撞到了正在发生的事情....原来在我的路线中缺少正斜杠......非常感谢......我现在唯一可以问你的是请对我的问题投赞成票。这样我就可以成长为社区成员..... 所有这些看似愚蠢的问题只是学习过程的一部分。以上是关于使用 Postman MERN 堆栈在发布请求上收到 404 错误的主要内容,如果未能解决你的问题,请参考以下文章
部署到 heroku - 白屏 - 没有明显错误 - MERN 堆栈在本地工作得很好,包括 API 请求 - 已经尝试了 27 次部署
获取“被 CORS 策略阻止:请求的资源上不存在 'Access-Control-Allow-Origin' 标头。”使用 Axios 使用 MERN 堆栈