尝试发送 POST 请求时收到 404 错误

诺克

我正在尝试使用 node.js 设置 API,并在我的 app.js 类中处理请求错误,如果出现问题,我将返回 404,现在这就是我的问题,我看不出我是如何请求错误的,我我仍然收到 404 错误,我试图像这样向我的 API 发送一个 post 请求:

{
    "name":"Harry Potter 5",
    "price":"12.99"
}

然后我明白了

错误

这是我的 app.js

const express = require('express');
const app = express();
const morgan = require('morgan');
const productRoutes = require('./api/routes/product');
const orderRoutes = require('./api/routes/order');
const bodyParser = require('body-parser');

app.use(morgan('dev'));
app.use(bodyParser.urlencoded({
    extended:false
}));
app.use(bodyParser.json());
app.use((req, res, next) => {
    const error = new Error("Not found");
    error.status = 404;
    next(error);
  });

  app.use((error, req, res, next) => {
    res.status(error.status || 500);
    res.json({
      error: {
        message: error.message
      }
    });
  });
app.use('/products', productRoutes);
app.use('/orders', orderRoutes);

module.exports = app;

这是我的 product.js

const express = require('express');
const router = express.Router();

router.get('/', (req, res, next) => {
    res.status(200).json({
        message: 'Handling GET requests to /products'
    });
});

router.post('/', (req, res, next) => {
    const product = {
        name: req.body.name,
        price: req.body.price
    };
    res.status(201).json({
        message: 'Handling POST requests to /products',
        createdProduct: product
    });
});

router.get('/:productId', (req, res, next) => {
    const id = req.params.productId;
    if (id === 'special') {
        res.status(200).json({
            message: 'You discovered the special ID',
            id: id
        });
    } else {
        res.status(200).json({
            message: 'You passed an ID'
        });
    }
});

router.patch('/:productId', (req, res, next) => {
    res.status(200).json({
        message: 'Updated product!'
    });
});

router.delete('/:productId', (req, res, next) => {
    res.status(200).json({
        message: 'Deleted product!'
    });
});

module.exports = router;
蓝番茄

这是因为您将所有内容都设置为错误:)

请参阅此处的文档- 来自提供的链接:

编写错误处理程序 以与其他中间件函数相同的方式定义错误处理中间件函数,除了错误处理函数有四个参数而不是三个参数:(err, req, res, next)。例如:

// pay attention to err param
app.use(function (err, req, res, next) {
   console.error(err.stack)`  
   res.status(500).send('Something broke!')
})

在您的代码中,您有以下内容:

app.use((req, res, next) => {
    const error = new Error("Not found");
    error.status = 404;
    next(error);
  });

这告诉 express 每个请求都应该用 404 响应。您应该将其设置为正确的错误处理程序,或者将其删除。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Django发送POST请求时返回403错误

当我在本地主机上尝试端点时收到404错误

为什么在尝试发送POST请求时发生错误?

尝试在HTTPCLIENT -JAVA中发送POST请求时,收到400错误请求

收到错误响应-在GO中发送POST请求时从服务器收到422

尝试发送POST请求时,应用脚本发送405响应

尝试向TFS发送REST请求时,为什么会出现404错误?

意外的输入结束:尝试在for循环中发送curl post请求时,对象错误的预期关闭标记

发送查询参数时POST请求发生I / O错误

尝试POST请求时出现猫鼬验证错误

使用Postman MERN Stack在Post Request上收到404错误

POST方法在被请求时不断发送400个错误

尝试导航到Heroku中的登录路线时收到404错误

尝试POST请求时出现节点js错误

尝试升级时出现404错误

jQuery $ .ajax通过发送POST接收到400错误请求

尝试协商时出现SignalR 404错误

收到(400)错误的请求。尝试发送GCM消息时

尝试发送帖子并总是收到错误的请求

当我向 api 服务器发出 post 请求时收到 404 错误

Python在发送请求时收到超时错误

尝试使用 ErrorDocument 处理请求时遇到 404 Not Found 错误

当 Flask 收到 POST 请求并尝试将其用作 JSON 数据时出现错误

当我尝试通过 REST 请求发送 DM 时,我收到了错误的身份验证数据

Axios POST 请求将数据发送到 Express 服务器但错误 404

尝试向 Nest JS 服务器发送特定 POST 请求时,为什么会出现 404 错误?

尝试发布到控制器时收到 404 错误

尝试链接 API 时收到“400 错误请求”

尝试使用 Spring JPA 为带有外键的 JSON 对象发送 POST 请求时出现重复或空错误