我正在使用正文解析器来获取POST请求的正文。我的index.js文件如下所示:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json());
app.use(express.json());
app.post('/', function(request, response){
console.log(request.body);
res.send("test");
});
app.get('/', function(req, res) {
res.send('Hello World!');
});
app.listen(8080, function() {
console.log('Example app listening on port 8080!');
});
当我启动docker时,我得到了预期的监听消息。
运行命令时,curl -d {"user":"Someone"} -H "Content-Type: application/json" --url http://localhost:8080
出现错误,Unexpected token u in JSON at position 1
at JSON.parse (<anonymous>)
我很困惑,因为我没有在任何地方直接调用json.parse
答案 0 :(得分:0)
您需要
curl -d "{"user":"Someone"}" -H "Content-Type: application/json" --url http://localhost:8080;
有时Curl不会解析单引号。
答案 1 :(得分:0)
问题可能出在请求中。正文应为字符串:
curl -X POST -H "Content-Type: application/json" -d '{"message": "foo"}' http://localhost:8080/messages