我试图将数据从一个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上的哪个管道。
我的最终目标是能够通过http post和request将命令发送到服务器。
如果有人有任何建议,我们将不胜感激。
谢谢!
答案 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
发送到服务器。