如何从路由中的节点返回从PageSpeed Insight收到的数据?

时间:2016-07-06 08:46:39

标签: node.js express asynchronous pagespeed google-pagespeed

我在一个简单的路线中使用PSI npm包。 https://github.com/addyosmani/psi 使用库中的psi方法。但是,脚本不会等待预期的结果。它在控制台中运行正常。但是,我需要将响应返回给浏览器并在那里显示它。我怎样才能做到这一点? 注意:psi方法是一个Promise。

app.get('/psi', function(req, res){
    res.type('text/html');
    return psi('example.com',{ key: '*Iz*Sy*****PiZ***wz7****sy*****', strategy: 'desktop'}).then( data => {
        console.log('Speed score: ' + data.ruleGroup.SPEED.score);
        console.log('done');
        res.json({ 'results' : data.ruleGroup.SPEED.score });
    });

});

1 个答案:

答案 0 :(得分:0)

我可能错了,但你不应该删除return声明吗?如果psi返回一个承诺并且您返回psi,我认为应该在.then()函数之后添加app.get语句,因为它已经返回,但是您无法访问res {1}}。那么,只需删除return