2016-07-06 1 views
0

私は単純なルートでPSI npmパッケージを使用しています。 https://github.com/addyosmani/psi ライブラリからpsiメソッドを使用しました。ただし、スクリプトは予期した結果を待つことはありません。それはコンソールでOkを動作させます。しかし、私はブラウザに返信してそこに表示する必要があります。これどうやってするの? 注:psiはPromiseを処理します。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()の文を追加しなければならないと思いますが、返されているので、resにアクセスすることはできません。ですので、returnを削除するだけですか?

+0

はい、私は最終的にそれを削除し、結果が表示されます。しかし、私はこのリクエストをAjaxのものにする必要があると思います。ですから、データを操作して派生した結果を返した後に返す方法はありますか? –

+0

私は 'res.json'のあなたの解決策はうまくいくと思いますか?それがうまくいかない場合は、app.useにいくつかの設定を追加するか、いくつかのヘッダを追加する必要があるかもしれないからでしょう。送信しようとしている応答を記録して、正しい形式などを確認してください。 – flott

関連する問題