gpt4 book ai didi

json - node.js 使用 request 模块返回文件内容

转载 作者:太空宇宙 更新时间:2023-11-04 01:45:33 25 4
gpt4 key购买 nike

我正在学习如何在 Node.js 中读取 json 数据(对于 walkscore.com api),我找到了请求模块。我知道如何让它在“请求” block 内执行操作。但是,我在函数中调用它,并且希望该函数返回 json 数据。我如何能够简单地访问函数内部但在请求 block 外部的“body”变量?

var request = require("request")

function loadWalkScore(lat, lon, address, name, state) {
var address = encodeURI(address)
var url = "http://api.walkscore.com/score?format=json&address=" + address
url += "&lat=" + lat + "&lon=" + lon + "&wsapikey=" + wsapikey

request(url, { json: true }, (err, res, body) => {
if (err) { return console.log(err); }
// somehow make loadWalkScore() function return <body>
});
}

最佳答案

您希望让 loadWalkScore 接受回调参数,并在请求回调中调用它。在编写 Node 代码时,您的函数很少实际返回您请求的数据,它们要么接受(并最终调用)您提供的回调,要么返回 Promises(最终使用请求的数据解析)。这是使用 HTTP 请求等异步操作的方法。

可能是这样的:

function loadWalkScore(lat, lon, address, name, state, cb) {
....
request(url, { json: true }, (err, res, body) => {
if (err) {
console.log(err);
cb(err);
} else {
cb(null, body);
}
});

然后这样调用它:

loadWalkScore(...args..., function (err, body) {
console.log('body:', body);
})

关于json - node.js 使用 request 模块返回文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51643902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com