我正在创建一个简单的登录页面,已经使用nodeJS和html表单创建了登录路径,但是每当我单击HTML表单上的Submit时,都会给我一个404 not found错误,尽管使用邮递员时,帖子请求正常运行,我称请求错了吗?
这是我在user.js中的路线
router.post("/login", (req, res, next) => {
User.find({ email: req.body.email })
.exec()
.then(user => {
if (user.length < 1) {
return res.status(401).json({
message: "Auth failed"
});
}
bcrypt.compare(req.body.password, user[0].password, (err, result) => {
if (err) {
return res.status(401).json({
message: "Auth failed"
});
}
if (result) {
const token = jwt.sign(
{
email: user[0].email,
userId: user[0]._id
},
process.env.JWT_KEY,
{
expiresIn: "1h"
}
);
return res.status(200).json({
message: "Auth successful",
token: token
});
}
res.status(401).json({
message: "Auth failed"
});
});
})
.catch(err => {
console.log(err);
res.status(500).json({
error: err
});
});
});
这是我的html表单:
<div class="panel-heading">
<form action="/user/login" method="post">
Email : <input type="text" name="email"><br>
Password : <input type="password" name="password"><br>
<input type="submit"><br>
<a href="register.html">Not a user?</a>
</form>
</div>
它们都位于同一个应用程序目录中
这是在我的app.js文件中:
// Routes which should handle requests
app.use("/products", productRoutes);
app.use("/orders", orderRoutes);
app.use("/user", userRoutes);
答案 0 :(得分:0)
您必须从其他服务器加载HTML文件。如果您需要执行XHR请求,或者需要执行代理,或者需要直接使用网址。
在您的用例中,使用此方法:
“ localhost:3000 /用户/登录”
应该采取行动。