当我执行本地 GET 请求时,我尝试提供外部 API 调用的响应,但正在努力解决如何使其正常工作的问题。
我现在的代码是:
app.get('/', function(req, res){
request.post('http://data.fixer.io/api/latest?access_key=' + apikey +
'&symbols=gbp', function(err, res, body) {
console.log(body)
})
res.render('index')
})
我对回调和异步编程的知识和经验有限,但是如何将请求 POST 的响应传递到 GET 请求中,然后将其传递到索引?
谢谢!
最佳答案
回调可能很难理解,并且您描述的问题并不罕见(它甚至有一个名称 - Callback Hell )。 Node 引入 async
/await
语法的部分原因 - 这是该风格的代码的等效内容
app.get('/', async (req, res, next) => {
try {
const uri = `http://data.fixer.io/api/latest?access_key=${apikey}&symbols=gbp`;
const data = await request.post(uri);
return res.render('index', { data }); // or pass whatever you need from `data` into the view
} catch (e) {
return next(e);
}
}
注意到一个很大的区别了吗?没有回调,您可以获得异步代码的所有相同好处以及以同步风格编写代码的好处。
关于javascript - Node 在本地 get 请求中请求外部 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51098391/