Node.js 节点js request.post回调未启动

Node.js 节点js request.post回调未启动,node.js,express,http-post,httprequest,Node.js,Express,Http Post,Httprequest,我试图将一些JSON数据从一个节点js应用程序发送到另一个用Flask编写的web服务。我正在尝试使用请求库,并查看了问题和答案 基于这些示例,我提出了以下简单的应用程序。应用程序将JSON数据发送到我的flask服务器,但不获取/触发回调。我已经检查了Flask应用程序是否通过返回了一些数据,并且工作正常。 我哪里做错了 [这是我的整个app.js] var express = require("express"); var request = require('request');

我试图将一些JSON数据从一个节点js应用程序发送到另一个用Flask编写的web服务。我正在尝试使用请求库,并查看了问题和答案

基于这些示例,我提出了以下简单的应用程序。应用程序将JSON数据发送到我的flask服务器,但不获取/触发回调。我已经检查了Flask应用程序是否通过返回了一些数据,并且工作正常。 我哪里做错了

[这是我的整个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);
  });
var express=require(“express”);
var请求=要求(“请求”);
var-app=express();
应用程序集(“查看引擎”、“帕格”);
app.get('/',函数(req,res){
log(“此处…”)
请求({
网址:'http://localhost:5000/receive_user_response',
方法:“张贴”,
标题:{
“内容类型”:“应用程序/json”
},

json:{/这不是真正的答案,但我可以通过使用而不是请求来让它工作

var express = require("express");
var app = express();
var rp = require('request-promise');

var options = {
    method: 'POST',
    uri: 'http://localhost:5000/receive_user_response',
    body: {
        some: 'payload'
    },
    json: true // Automatically stringifies the body to JSON
};

app.set('view engine', 'pug');
app.get('/', function(req, res) {

    rp(options).then(function(res) {
        console.log(res);

    }).catch(function(err) {
        console.log("error!");
    });

});

var server = app.listen(3000, function() {
    console.log("Listening on port %s...", server.address().port);
});

回调函数必须是
request
函数的第二个参数。您不小心将其放在了json对象中。下面的方法可以工作

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);
    }
  }
)
请求({
网址:'http://localhost:5000/receive_user_response',
方法:“张贴”,
标题:{
“内容类型”:“应用程序/json”
},

json:{//我不确定这是否只是将代码放入SO中的问题,但在回调函数之前,您似乎缺少了一个
}
。您确定吗..在我看来没问题…是的,我非常确定。您在
请求时有一个开口
{
({
之后是属性
url
方法
标题
,和
json
。关闭
}
对于
json
,您可以在不关闭
opts
对象的情况下立即使用回调函数。
callback
是一个单独的参数您是对的!我以为该请求只需要一个对象列表……但实际上它需要两个对象:一个是选项,另一个是回调。不用担心!我更喜欢
无论如何,请求承诺
模块我自己!
let options = {
  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..."
  }
};


request(options,
  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);
      }
  }
)