【问题标题】:form-data in node not showing节点中的表单数据未显示
【发布时间】:2021-04-17 04:26:26
【问题描述】:

我有一个节点快递设置。 在使用 Postman 时,我可以看到通过 x-www-form-urlencoded 发送的数据,但通过 form-data 没有显示相同的数据。

下面是代码 服务器.js

const express = require('express')
var cors = require('cors')
const app = express()
var bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
var cookieParser = require('cookie-parser')
app.use(cookieParser())

app.use(cors())
const index = require("./routes/index")
app.use("/", index)
const port = process.env.PORT || 3060;
app.listen(port, function listenHandler() { console.log(`Running on ${port}`) });

索引.js

const express = require('express')
const router = express.Router()
var pool = require('./mysqlConnector')
const asyncMiddleware = require('./asyncMiddleware')
const func = require('./functions')
const time = new Date().toISOString().slice(0, 19).replace('T', ' ')
const nodemailer = require("nodemailer");
router.use('/auth', require('./auth')

验证.js

const express = require('express')
const router = express.Router();
var pool = require('./mysqlConnector')
const asyncMiddleware = require('./asyncMiddleware')
const jwt = require('jsonwebtoken')
const bcrypt = require('bcryptjs')
const nodemailer = require("nodemailer");
const func = require('./functions')

router.post('/register', asyncMiddleware( async(req, res, next) => {
   res.send({ success: true, message: req.body }) 
}))

【问题讨论】:

    标签: node.js express postman multipartform-data body-parser


    【解决方案1】:

    你应该使用Multer来处理form-data

    Multer 是一个 node.js 中间件,用于处理multipart/form-data

    body-parser 中间件无法处理multipart/form-data

    这不处理多部分实体,因为它们复杂且通常很大。

    如果您需要处理纯文本的多部分表单,您应该使用.none() 方法:

    例如

    const express = require('express');
    const bodyParser = require('body-parser');
    const multer = require('multer');
    const upload = multer();
    
    const app = express();
    
    app.use(upload.none());
    app.use(bodyParser.urlencoded({ extended: false }));
    app.use(bodyParser.json());
    app.post('/auth/register', (req, res) => {
      res.send({ success: true, message: req.body });
    });
    const port = process.env.PORT || 3060;
    app.listen(port, function listenHandler() {
      console.log(`Running on ${port}`);
    });
    

    邮递员:

    【讨论】:

      猜你喜欢
      • 2020-10-26
      • 2017-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-20
      • 1970-01-01
      • 2013-03-06
      相关资源
      最近更新 更多