当在POSTMAN中发布一些数据时,我遇到了问题,我的问题是在" POST“方法/auth/ req.body返回空数组期间。只有当我使用带有使用表单数据的POST方法,如果我更改为xxx-www-form-urlencoded任何工作正常的东西时,Postman才返回空对象。我想知道为什么会这样
const express = require('express');
const mongoose = require('mongoose');
const app = express();
require('dotenv').config();
const port = process.env.PORT || 5000;
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use("/static", express.static(__dirname + "/assets"))
app.post('/auth/login', (req, res) => {
res.status(200).json(req.body)
})
mongoose.connect("mongodb://localhost:27017")
.then(() => {
app.listen(port, () => {
console.log('port' + port)
})
})发布于 2022-09-18 05:50:28
我假设你指的是application/x-www-form-urlencoded而不是xxx-www-form-urlencoded,你指的是multipart/form-data而不是form-data。
这两个内容类型是完全不同的编码。当你打电话时:
app.use(express.urlencoded({ extended: true }));您添加了一个可以解析application/x-www-form-urlencoded的中间件,但这并不意味着它也会自动解析其他格式。它只适用于这种格式,就像express.json()只适用于application/json格式一样。
发布于 2022-09-18 05:52:38
我解决了这个问题,我刚在我的控制器里创建了穆特,它按照我的意愿工作。
const express = require('express');
const router = express.Router();
const { getUsers, createNewUser } = require('../controllers/newUser')
const path = require('path');
const multer = require('multer');
const upload = multer();
router.get('/', getUsers)
router.get('/:id', (req, res) => res.send('get single user'))
router.post('/', upload.none(), createNewUser)
module.exports = router;https://stackoverflow.com/questions/73759970
复制相似问题