Node.js 处理不需要的请求方法
在我的post控制器js文件中,我有以下创建新post的代码。在它里面我有一个代码,检查方法是否等于“POST”,以防在postman中我为“POST”路由选择“GET”,它会显示一条自定义错误消息。然而,我一直得到一个404错误 以下代码位于post.controller.js文件中:Node.js 处理不需要的请求方法,node.js,api,express,postman,Node.js,Api,Express,Postman,在我的post控制器js文件中,我有以下创建新post的代码。在它里面我有一个代码,检查方法是否等于“POST”,以防在postman中我为“POST”路由选择“GET”,它会显示一条自定义错误消息。然而,我一直得到一个404错误 以下代码位于post.controller.js文件中: const { createPost, getPosts } = require("./post.service"); module.exports = { //Contro
const {
createPost,
getPosts
} = require("./post.service");
module.exports = {
//Controller for creating new post
createPost: (req, res) =>{
if(req.method !== 'POST'){
return res.status(400).json({
message: 'Error. Incorrect method.'
});
}
const body = req.body;
createPost(body, (err, results) => {
if(err){
console.log(err);
return res.status(500).json({
success:0,
message:"Error. Unable to create post"
});
}
return res.status(200).json({
success: 1,
message: "Post was successfully created",
data: results
});
});
}
}
const {
createPost,
getPosts
} = require("./post.controller");
const router = require("express").Router();
router.post("/createPost", createPost);
router.get("/getPosts", getPosts);
module.exports = router;
以下代码来自post.router.js文件:
const {
createPost,
getPosts
} = require("./post.service");
module.exports = {
//Controller for creating new post
createPost: (req, res) =>{
if(req.method !== 'POST'){
return res.status(400).json({
message: 'Error. Incorrect method.'
});
}
const body = req.body;
createPost(body, (err, results) => {
if(err){
console.log(err);
return res.status(500).json({
success:0,
message:"Error. Unable to create post"
});
}
return res.status(200).json({
success: 1,
message: "Post was successfully created",
data: results
});
});
}
}
const {
createPost,
getPosts
} = require("./post.controller");
const router = require("express").Router();
router.post("/createPost", createPost);
router.get("/getPosts", getPosts);
module.exports = router;
取而代之的是,我在《邮递员》中发现了一个404错误:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot GET /api/posts/createPost</pre>
</body>
</html>
错误
无法获取/api/posts/createPost
错误告诉您的是,您正在尝试获取应用程序中未处理的路由。在本例中,缺少router.get('/createPost',yourController)
请注意,您尝试的这种方法不被推荐,也不是一种好的做法。尝试定义每个路由和方法,以实现其自身的目的
如果您仍有兴趣实现此目标,可以尝试添加缺少的路线,如下所示:
router.get('/createPost',(req,res)=>{res.send(您的_错误)})代码>错误告诉您的是,您正在尝试获取应用程序中未处理的路由。在本例中,缺少router.get('/createPost',yourController)
请注意,您尝试的这种方法不被推荐,也不是一种好的做法。尝试定义每个路由和方法,以实现其自身的目的
如果您仍有兴趣实现此目标,可以尝试添加缺少的路线,如下所示:
router.get('/createPost',(req,res)=>{res.send(您的_错误)})代码>为了更好地了解您的问题,您可以提供您的路由文件吗?谢谢Luis。我刚刚用路由器文件更新了我的帖子,你的getPosts控制器是在哪里定义的?createPost和getPosts都在module.exports中的post.controller.js文件中,我只是没有在这里发布它,所以基本上我要做的是,如果我在postman中意外地为一个路由选择了“GET”方法,而该路由本来是用于“post”的方法然后我想显示一个自定义错误消息,而不是我刚才在这里发布的404错误。请提供您的路由文件,以便更好地了解您的问题?谢谢Luis。我刚刚用路由器文件更新了我的帖子,你的getPosts控制器是在哪里定义的?createPost和getPosts都在module.exports中的post.controller.js文件中,我只是没有在这里发布它,所以基本上我要做的是,如果我在postman中意外地为一个路由选择了“GET”方法,而该路由本来是用于“post”的方法,然后我想显示一条自定义错误消息,而不是我刚才在这里发布的404错误