【发布时间】:2017-05-15 09:21:13
【问题描述】:
所以我在 Node.js 和 express 中构建了一个应用程序,其中我有一个路由器和 API 模块,我从中发出 HTTP 请求。我正在努力解决在回调之间传递值的问题。
看起来像这样:
路由器:
var dataAPI = require('../API/getData');
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
dataAPI.getData(function(res, data){
res.render('index', {data: data});
});
});
module.exports = router;
而getAPI文件有这个功能:
var request = require('request');
var config = require('../config/config');
getData = function(callback){
request({
headers: {
'Content-Type' : 'application/json',
'Authorization' : config.authorization.token
},
uri: config.url.get_portfolio,
method: 'GET',
rejectUnauthorized: false,
}, function(err, res, body){
if (err || body == undefined ){
console.log("Error in first callback.");
throw err;
}
console.log("HTTP: ", res.statusCode, " GOT DATA: ", body);
});
}
我在这里想要完成的是能够做到
res.render('index', {data })
并使用 getData 函数中请求的数据。这样做的正确方法是什么?
【问题讨论】:
标签: javascript node.js express asynchronous