【问题标题】:why req.body is always empty and req.files is always undefined when sending form-data为什么发送表单数据时 req.body 始终为空且 req.files 始终未定义
【发布时间】:2018-03-03 16:49:27
【问题描述】:

我正在尝试将表单数据发送到 nodejs,但 req.body 始终为空且 req.files 未定义。这是我的代码 index.js

const express = require('express');
const app = express();
const mongoose = require('mongoose');
mongoose.Promise = global.Promise;
const config = require('./config/database');
const path = require('path');
const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
const router = express.Router();
const products = require('./routes/product')(router);
const port = process.env.PORT || 3030;
app.use('/products', products);

app.listen(port, () => {
    console.log('Listening on port ' + port + ' in ' + process.env.NODE_ENV + ' mode');
});

在 product.js 文件中

let multer = require('multer');
let upload = multer();


module.exports = (router) => {

  router.post('/newProduct', (req, res) => {
          console.log('req');
          console.log( req.body );
          console.log( req.files );
})
}

【问题讨论】:

标签: node.js express post postman body-parser


【解决方案1】:

我建议至少阅读multer readme

你需要告诉 multer 为每条路由上传一个或多个文件。

例如

router.post('/newProduct', upload.array('files', 5), (req, res) => {
          console.log('req');
          console.log( req.body );
          console.log( req.files );
})

或者您也可以使用upload.single() 处理单个文件或使用upload.fields() 处理多个上传表单字段。但这一切都在他们的页面中得到了更好的解释。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-09
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    相关资源
    最近更新 更多