Node.JS Express数据传输

时间:2015-09-11 17:57:52

标签: javascript node.js post request

我试图将数据从一个node.js实例来回传输到另一个。

我正在使用express和请求传输这些数据,我刚开始这个特定的项目,并不像id承认的那样好。

这是我收到邮寄请求的主要应用程序。

var express = require('express');
var app = express();
app.get('/', function (req, res) {
  res.send('Hello World!');
});

app.post('/', function (req, res) {
  res.send('POST request to the homepage');
console.log('POST REQUEST' + res + req);
});

var server = app.listen(3004, function () {
  var host = server.address().address;
  var port = server.address().port;

  console.log('Example app listening at http://%s:%s', host, port);
});

这是我的节点实例2,充当客户端。

var request = require('request');

request.post(
    'http://192.168.1.225:3004',
    { form: { key: 'notyourmother' } },
    function (error, response, body) {
        if (!error && response.statusCode == 200) {
            console.log(body)
        }
    }
);

运行时,这是我得到的响应,稍后一旦工作,它将被分配给变量作为字符串。此时它甚至不会给我通过帖子发送的数据,我使用请求和响应来查看数据流在console.log上的哪个管道。

enter image description here

我的最终目标是能够通过http post和request将命令发送到服务器。

如果有人有任何建议,我们将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

你做得对,你基本上是在req(这是请求对象)中获取数据。在帖子中,数据在正文中为req.body

基本上,如果您将行res.send('POST request to the homepage');更改为res.send('POST request to the homepage' + req.body);,您应该在您的客户端中看到您的字符串。

通常,您希望拥有身体解析器(https://github.com/expressjs/body-parser),您可以将其集成到您的应用中,如下所示

var express = require('express');
var bodyParser = require('body-parser')
var app = express();
app.use(bodyParser.json());

app.get('/', function (req, res) {
  res.send('Hello World!');
});

app.post('/', function (req, res) {
  res.send('POST request to the homepage');
console.log('POST REQUEST' + res + req);
});

var server = app.listen(3004, function () {
  var host = server.address().address;
  var port = server.address().port;

  console.log('Example app listening at http://%s:%s', host, port);
});

请记住,如果您发布json,客户端应将标头content-type: application/json发送到服务器。