【发布时间】:2021-02-05 07:42:24
【问题描述】:
在下面的代码中,我正在访问以英镑为单位的当前比特币价值。 console.log 工作正常。
value.js
http = require('http');
http.get({
host: 'api.coindesk.com',
path: '/v1/bpi/currentprice.json'
},
function get_value(response) {
// Continuously update stream with data
var body = '';
response.on('data', function(d) { body += d; });
response.on('end', function() {
// Data reception is done, do whatever with it!
var parsed = JSON.parse(body);
var final_value = parsed.bpi.GBP.rate
console.log(final_value)
module.exports = final_value;
});
}
);
但是当我尝试从另一个文件访问这个值(final_value)时:
server.js
PORT = 4000;
var http = require('http');
const value = require('./value.js');
var server = http.createServer((req, res) => {
res.write("Create server working");
});
server.listen(PORT, () => {
console.log(value);
});
我得到的只是 {}。
我对 node.js 很陌生,更习惯于 python。我研究过从函数中的函数访问值,但找不到任何解决方案。
有没有人建议我如何从单独的文件中访问变量 final_value?
【问题讨论】:
-
它看起来像一个异步问题。当你导入 value.js 模块时,还没有导出,因为对 api 的请求还没有完成。您可以在 value.js 中导出一个方法以在外部使用它来获取 final_value。
标签: javascript node.js function api require