使用/ node.js发布JSON

时间:2014-11-22 02:31:20

标签: javascript json node.js post

我有两个node.js文件:&#34; client&#34;和&#34;服务器&#34;。 &#34;服务器&#34;只是侦听任何http请求,然后在收到请求对象时将其写入控制台。这符合GET请求的预期效果。当我编写一个类似于POST的JSON下面的客户端时,似乎可以正常工作,除非在请求中的任何地方都没有JSON输出到&#34;服务器&#34;。< / p>

在&#34;服务器&#34;的输出中打印到控制台,所有其他请求特定的东西都存在,例如主机:&#39; 127.0.0.1&#39;,url:&#39; / some / path&#39;,方法:&#39; POST& #39;

但没有引用任何已发布的JSON ....像用户名这样的项目:&#39; someUser&#39;,email:&#39; some@email.com' ;, firstName:&# 39; SomeFN&#39;,lastName:&#39; SomeLN&#39;

从&#34; Server&#34;完成控制台输出是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');

0 个答案:

没有答案