一个问题,请noder帮忙看看~
代码如下,一个路由件,我通过request发送http请求,将获取的数据赋值给content。
router.get('/路由', function(req, res) {
var content = '';
var options = 已经有了;
request(options, function(err, res, data) {
if (err) {throw err;}
content = data;
});
//执行下一句话时,request语句还没有返回data,所以失败。。。
res.send(content);
}
请noder提供几个方案,如何才能实现res.send(content);
7 回复
已经找到办法解决了,自己写一个回调函数来实现数据的传递~
欢迎noder提供更好的方法解决~
var content = '';
var f1 = function(callback) {
request(options, function(err, res, data) {
if (err) {throw err;}
console.log('====' + req.url);
content = data;
callback(content);
});
};
var f2 = function(content){
console.log('开始调用');
res.send(JSON.parse(content));
};
//下面这句话就执行了这个过程,实现了想要的效果。
f1(f2);
router.get('/路由', function(req, res) {
var content = '';
var options = 已经有了;
request(options, function(err, res, data) {
if (err) {throw err;}
content = data;
//把这一句放到这里如何?
res.send(content);
});
}
同意二楼,LZ为何还要绕这么大一圈? 难道其中有深意
router.get('/路由', function(req, res) {
var content = '';
var options = 已经有了;
request(options, function(err, response, data) {
if (err) {throw err;}
content = data;
//把这一句放到这里如何?
res.send(content);
});
}
好了 ^ _ ^
@Hi-Rube -.-|||我去试试再告诉你结果
这个是express吧?