我有两个node.js文件:"client"和"server" . "Server"只是侦听任何http请求,然后在收到请求对象时将其写入控制台 . 这符合GET请求的预期效果 . 当我编写一个类似于POST的JSON下面的客户端时,它似乎工作正常,除了在"Server"上输出到控制台的请求中的任何地方都没有JSON .
在“服务器”打印到控制台的输出中,所有其他请求特定的东西都存在,例如主机:'127.0.0.1',url:'/ some / path',方法:'POST'
但没有引用任何已发布的JSON ....像用户名:'someUser',email:'some @ email.com',firstName:'SomeFN',lastName:'SomeLN'
来自"Server"的完整控制台输出是here .
//client
var http = require('http');
var user = {
username: 'someUser',
email: 'some@email.com',
firstName: 'SomeFN',
lastName: 'SomeLN'
};
var userString = JSON.stringify(user);
var headers = {
'Content-Type': 'application/json',
'Content-Length': userString.length
};
var options = {
host: '127.0.0.1',
port: 80,
path: '/some/path',
method: 'POST',
headers: headers
};
// Setup the request. The options parameter is
// the object we defined above.
var req = http.request(options, function(res) {
res.setEncoding('utf-8');
var responseString = '';
res.on('data', function(data) {
responseString += data;
});
res.on('end', function() {
var resultObject = JSON.parse(responseString);
});
});
req.on('error', function(e) {
// TODO: handle error.
});
req.write(userString);
req.end();
.
//server
var http = require('http');
var stringify = require('json-stringify-safe');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end(stringify(req, null, 2));
console.log(req)
}).listen(80, '127.0.0.1');