我只需要创建一个Node服务器来接收POST请求.有了请求正文中的信息,我需要创建一个系统调用.我该怎么办?到目前为止,我只有:
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser);
app.post('/', function(req, res){
console.log('POST /');
console.dir(req.body);
});
port = 3000;
app.listen(port);
console.log('Listening at http://localhost:' + port)
但是,当我向127.0.0.1:3000发出POST请求时,正文是未定义的.
var request = require(‘request’);
request.post(
'127.0.0.1:3000',
{ form: { "user": "asdf" } },
function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body)
}
}
);
解决方法:
你在这里遇到了中间件问题. Express.bodyparser()中间件在Express 4.x中已弃用.这意味着您应该使用独立的bodysarser中间件.
奇怪的是,您通过执行以下操作导入正确的中间件:
var bodyParser = require(‘body-parser’);
但是,您应该以不同的方式使用它.看看the docs和给出的例子:
var app = require('express')();
var bodyParser = require('body-parser');
var multer = require('multer');
app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
app.use(multer()); // for parsing multipart/form-data
app.post('/', function (req, res) {
console.log(req.body);
res.json(req.body);
})
原文地址:https://codeday.me/bug/20190609/1203966.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。