【发布时间】:2016-12-28 23:30:33
【问题描述】:
我正在尝试将一些 JSON 数据从节点 js 应用程序发送到另一个用 Flask 编写的 Web 服务。我正在尝试使用请求库并查看了问题here 和here。
根据示例,我想出了以下简单的应用程序。该应用程序将 JSON 数据发送到我的烧瓶服务器,但不会获取/触发回调。我检查了 Flask 应用程序是否通过postman 返回了一些数据,并且工作正常。 我哪里错了?
[这是我的整个 app.js]
var express = require("express");
var request = require('request');
var app = express();
app.set('view engine', 'pug');
app.get('/', function(req, res) {
console.log("here...")
request({
url: 'http://localhost:5000/receive_user_response',
method: "POST",
headers: {
"content-type": "application/json"
},
json: { // <--- I have also tried calling this as "body"
user_id: "some id...",
user_info: "some info..."
},
function(err, res, data) {
console.log('err', err) // <---- never prints any thing from here!
console.log('res', res)
console.log('data', data)
if (!err && res.statusCode == 200) {
console.log(data);
}
}
})
console.log("here...done..")
});
var server = app.listen(3000, function() {
console.log("Listening on port %s...", server.address().port);
});
【问题讨论】:
-
我不确定这是否只是将您的代码放入 SO 的问题,但您似乎在回调函数之前缺少
}。 -
你确定……我觉得还可以……
-
是的,我很确定。您在
request({有一个开口{,后跟属性url、method、headers和json。在为json关闭}之后,您将立即拥有您的回调函数,而无需关闭opts对象。callback是一个单独的参数 -
你是对的!我认为该请求只需要一个对象列表......但实际上它需要 2 个对象,一个是选项,第二个是回调。
-
别担心!无论如何,我自己更喜欢
request-promise模块!
标签: node.js express http-post httprequest