NODEJS中的POST请求保持未定义

时间:2017-01-19 12:57:36

标签: node.js http post

我正在尝试将JSON对象放入变量中,以显示人们必须在字符串中的facebook聊天机器人中等待的时间。我尝试了各种方法,并尝试了我在堆栈溢出或博客文章中发现的所有其他方法,但它只是不断返回undefined。

var waitingTime = request.post(
    "https://mypage.com/data/data/responsetime",
    {
        form: {
          'key': 'value'
        }
    },
    function (error, response, body) {
        if (!error && response.statusCode == 200) {
            JSON.parse(body.responsetime)
            console.log(response)
        }
    }
);

1 个答案:

答案 0 :(得分:0)

我不知道你是否真的写了JSON.parse(body.responetime)而不是JSON.parse(body.responsetime)(你拼写错误responsetime),但它可能导致你undefined问题! PS:我编辑你的帖子认为这是一个错误(我希望它是:P)。

即使这不是问题,我认为你的代码几乎是正确的。但您必须了解request的工作原理以及回调的工作原理。当您使用request.post()时,您正在进行异步调用,这意味着如果您想要结果,则必须等待进程结束。这就是为什么你将函数作为request.post(address, data, callback)的第三个参数。

接下来,如果您要初始化var waitingTime,则必须在回调中初始化它:

var waitingTime = null;

request.post(
    "https://mypage.com/data/data/responsetime",
    {
        form: {
          'key': 'value'
        }
    },
    function (error, response, body) {
        if (!error && response.statusCode == 200) {
            waitingTime = JSON.parse(body.responsetime);
            // Now you can use the waitingTime variable.
        }
    }
);