我正在开发在服务器端使用 node,express,mysql 的应用程序.我已经在server.js文件上编写了服务器API,当我尝试使用Postman访问这些API时, req.body 始终是未定义的.
I am working on app which uses node, express, mysql on server side. i have written serveral APIs on server.js file and when i am trying to access those using Postman then req.body is always undefined.
这是我的server.js配置.
this is my server.js configuration.
var express = require('express'); var mysql = require('mysql'); var cors = require('cors'); var bodyParser = require('body-parser'); var wrench = require("wrench"); var fs = require('fs'); var path = require("path"); var mkdirp = require('mkdirp'); var walk = require('walk'); var fse = require('fs-extra'); var multipart = require('connect-multiparty'); var multipartMiddleware = multipart(); var crypto = require('crypto'); app.use(cors()); app.use(bodyParser.urlencoded({limit: '50mb',extended: false})); app.use(bodyParser.json({limit: '50mb'})); var connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'pass', database: 'dbname' }); connection.connect(function(err) { if (!err) { console.log("Database is connected ... \n\n"); } else { console.log("Error connecting database ... \n\n"); } }); app.post('/urlreq', function(req, res){ console.log(req.body); } app.listen(3000, function(){ console.log("Rest Demo Listening on port 3000"); });当我尝试在Postman中以正文形式发送邮件时,req.body在服务器端变为空.
When i am trying send something in body in Postman then req.body is coming empty on server side.
推荐答案如果您发送的是multipart/form-data,则它不起作用,因为bodyparser无法处理这种正文类型.
If you are sending multipart/form-data, it doesn't work because bodyparser doesn't handle this body type.
在这种情况下,添加以下行即可解决此问题:
In this case adding the following line should fix it:
app.use(multipartMiddleware);形成文档:
multipart/form-data是Web表单用于传输数据的默认编码
multipart/form-data is the default encoding a web form uses to transfer data
更多推荐
在服务器端未定义req.body
发布评论