我将以下JSON字符串发送到我的服务器.
(
{
id = 1;
name = foo;
},
{
id = 2;
name = bar;
}
)
Run Code Online (Sandbox Code Playgroud)
在服务器上我有这个.
app.post('/', function(request, response) {
console.log("Got response: " + response.statusCode);
response.on('data', function(chunk) {
queryResponse+=chunk;
console.log('data');
});
response.on('end', function(){
console.log('end');
});
});
Run Code Online (Sandbox Code Playgroud)
当我发送字符串时,它显示我得到了200响应,但其他两种方法从未运行.这是为什么?
我有以下Node.js代码:
var express = require('express');
var app = express.createServer(express.logger());
app.use(express.bodyParser());
app.post('/', function(request, response) {
response.write(request.body.user);
response.end();
});
Run Code Online (Sandbox Code Playgroud)
现在,如果我发布类似的东西:
curl -d user=Someone -H Accept:application/json --url http://localhost:5000
Run Code Online (Sandbox Code Playgroud)
我Someone按预期得到了.现在,如果我想获得完整的请求体,该怎么办?我尝试过response.write(request.body)但是Node.js会抛出一个异常,说" 第一个参数必须是字符串或缓冲区 ",然后进入"无限循环",异常显示" 无法在发送后设置标头. "; 即使我做了var reqBody = request.body;然后写作也是如此response.write(reqBody).
这是什么问题?
另外,我可以在不使用的情况下获得原始请求express.bodyParser()吗?
var express = require('express');
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
mongoose.Promise = require('bluebird');
mongoose.connect("mongodb://localhost/placement-process");
var app = express();
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());
var router = require('./router');
app.use('/api', router);
router.get('/companies', function(req, res){
console.log(res.body);
});
app.listen(3000);
Run Code Online (Sandbox Code Playgroud)
我正在使用 Chrome 浏览器的 POSTMAN 向 /api/companies 发出 GET 请求。但我的控制台没有得到任何输出。我究竟做错了什么?或者你会怎么做?