NodeJS模块无法从闭包内返回数据

时间:2015-09-20 13:40:41

标签: node.js

我正在尝试使用以下代码创建一个调用API的模块:

re.findall

不幸的是,我无法输出res的结果返回。我正在使用Unirest模块来请求HTTPS数据。

感谢。

2 个答案:

答案 0 :(得分:0)

您需要回调才能管理

var key = require('./keys').slack;
var unirest = require('unirest');

module.exports.apiCall = function(cb) {
    var args = {"token": key, "channel": "C07RLKT6C", "text": "DebugmessagePlsIgnore", "as_user": true};

    var req = unirest.post("https://slack.com/api/chat.postMessage");

    req.query(args).end(function(res) {
        cb(null, res)
    });
}

this.apiCall(function(err, res) {
    console.log(res)
});

答案 1 :(得分:0)

您需要回电。

//module.js

var key = require('./keys').slack;
var unirest = require('unirest');

module.exports.apiCall = function(callback) {
    var args = {"token": key, "channel": "C07RLKT6C", "text":  "DebugmessagePlsIgnore", "as_user": true};

    var req = unirest.post("https://slack.com/api/chat.postMessage");

    req.query(args).end(callback);
}

// another file
var apiCall = require('./module');

apiCall(function(res) {
    console.log(res);
});