Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 处理不需要的请求方法_Node.js_Api_Express_Postman - Fatal编程技术网

Node.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

在我的post控制器js文件中,我有以下创建新post的代码。在它里面我有一个代码,检查方法是否等于“POST”,以防在postman中我为“POST”路由选择“GET”,它会显示一条自定义错误消息。然而,我一直得到一个404错误

以下代码位于post.controller.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;
以下代码来自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错误