我正在尝试测试我的项目,我现在正在使用邮递员传递一些数据: 我已将邮递员设置为通过“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 请求时,它会按预期运行。我在这里缺少什么明显的东西吗?谢谢你。
Body-Parser 用于处理表单数据或处理 API 请求中的 JSON 有效负载。例如,在构建 RESTful API 时,它确保客户端发送的数据被正确解析并准备好由后端逻辑处理。
解决方案: 你应该在主文件顶部声明 json() 函数,如index.js
const express = require('express');
const app = express();
app.use(express.json()); //the Solution
app.listen( 3000,()=>{
console.log("Server is Listening on Port 3000");
})