我应该如何从Node.js模块返回这个远程JSON数据?

时间:2014-09-21 04:11:46

标签: javascript json node.js

我正在学习Node.js,我已经搜遍了整个地方,以了解如何处理这段代码。我正在编写一个与开放API通信的模块。它基本上要求一个JSON并将它返回给require这个moule的调用者。

这是在module.exports函数中:

// prep URL

var request = require('request');
request({
    url: requestURL,
    json: true
}, function(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);     // need to return this data 
    }
});

而不是console.log(body),我想从这个函数返回身体。但是因为回调函数是异步的,所以它不起作用。

我可以创建一个回调函数,但是我想从这个module.exports函数返回数据,所以这很奇怪。我可以将这个request代码放在辅助函数而不是module.exports函数中,但我无法弄清楚如何将数据返回。

我应该以其他方式组织我的代码吗?

1 个答案:

答案 0 :(得分:0)

我通过向API添加回调函数解决了我的问题。这样,父模块可以选择如何处理检索到的JSON数据。