// app.js使用t.js控制/t的路由
app.use('/t',require('t'));
在t.js(router)中,要send回tt.topic的值,这里是个JSON
router.get('/:id',function(req, res) {
var api = tt.topic(req.params.id);
res.send(api);
});
在tt.js(model)中,要通过Request获得数据进行过滤返回
tt.topic = function(id) {
var apiurl = 'api url';
var s = req(apiurl,doTheRequest);
function doTheRequest(error, response, body) {
if (!error && response.statusCode == 200) {
var data = JSON.parse(body).result;
console.log(data); // 我这里能拿到数据,但由于是异步的,怎么返回给主进程,进而通过res.send(data)出去?
}
}
return obj; // 这个无效,异步执行去了,这里返回undefined
}
module.exports = tt;
问题都在代码中了,request异步后怎么把值能返回给调用request的函数?进而返回给router,去res.send?
查了API,request没有end这种事件?
上Q.js能起到作用么?
都异步了,就异步到底呗,别老想return了
一般tt.topic里把res传递进去就可以了吧
至于Q.js我没用过,我只用过js原生的promise,node.js上应该可以用node的Promise库
大概把tt.topic改成这样