【问题标题】:Post request from postman seems to not be sending any json data邮递员的发布请求似乎没有发送任何 json 数据
【发布时间】:2020-06-28 02:35:28
【问题描述】:

我正在尝试测试我的项目,我现在正在使用邮递员传递一些数据: 我已经通过“body”将邮递员设置为“POST”到我的本地服务器,然后我发送以下内容:

{
    "name": "My Name"
}

那么,我的服务器文件发布请求是:

const express = require('express'),
router        = express.Router(),
gravatar      = require('gravatar'),
bcrypt        = require('bcryptjs'),
{check, validationResult} = require('express-validator');

// User Model
const User = require('../../models/User');

// @route       GET api/users
// @description Test Route
// @access      Public
router.get('/', (req, res) => {
    res.send("User Route")
});

// @route       POST api/users
// @description Register User
// @access      Public
router.post('/', [
    check('name', 'Name is required').not().isEmpty(),
    check('email', 'Please enter a valid email address').isEmail(),
    check('password', 'Password must contain at least 6 characters').isLength({min: 6})
], async (req, res) => {
    return res.send(req.body);
});

module.exports = router;

在我测试任何其他代码之前,我输入 res.send(req.body) 以确认任何内容都被发送到我的服务器,但是,res.send 只返回:{} 表示没有json 信息已发送到我的服务器。我知道路由有效,因为当我输入 GET 请求时,它会按预期运行。我在这里有什么明显的遗漏吗?谢谢。

【问题讨论】:

  • 可能是因为它是异步的,你试过删除它吗?
  • 你在末尾缺少一个右括号:return res.send(req.body); } 应该是 return res.send(req.body); })
  • 另外,你的 GET 路由没有大括号,所以也不应该工作
  • 您是否尝试过在 Postman 中设置键/值对而不是原始 JSON?
  • 我刚刚使用原始 JSON 测试了您的路线,但没有“检查”数组,它工作正常

标签: node.js express postman


【解决方案1】:

我已经找到了问题的答案。在“标题”中,我缺少“内容类型 - 应用程序/json”。添加后这似乎有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 2021-11-07
    • 2020-12-11
    • 1970-01-01
    • 2016-07-30
    • 2018-07-12
    • 1970-01-01
    相关资源
    最近更新 更多