2016-07-06 50 views
0

我在簡單的路線中使用PSI npm軟件包。 https://github.com/addyosmani/psi 使用庫中的psi方法。但是,腳本不會等待預期的結果。它在控制檯中正常工作。但是,我需要將響應返回給瀏覽器並將其顯示在那裏。我怎樣才能做到這一點? 注:磅方法一個承諾。如何從路由中的節點返回從PageSpeed Insight接收到的數據?

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 }); 
    }); 

}); 

回答

0

我可能是錯的,但不應該刪除return聲明嗎?如果psi返回一個承諾,並且您返回psi我相信.then()語句應添加在app.get函數之後,因爲它返回了那裏,但不能訪問res。那麼,試試簡單地刪除return

+0

是的,我最終刪除它,現在結果顯示。但是,我想我需要將這個請求作爲Ajax請求。那麼,在處理數據並返回派生結果之後,我是否可以將它返回? –

+0

我相信你的'res.json'解決方案應該可行,不是嗎?如果它不起作用,可能是因爲你需要添加一些設置到'app.use'或添加一些標題。嘗試記錄您嘗試發送的響應並檢查,以便它們具有正確的格式等。 – flott

相關問題