我有两个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');