我對「x-ray」庫的瞭解不多,但我認爲問題在於它,因爲它必須在可以返回響應數據之前異步發出請求。該文件說,如果你不設置路徑作爲參數傳遞給它返回一個可讀流的寫入功能,所以試試這個:
app.get('/', function(req, res) {
var stream = x('http://google.com', 'title').write(),
responseString = '';
stream.on('data', function(chunk) {
responseString += chunk;
});
stream.on('end', function() {
res.send(responseString);
});
});
您還需要啓動服務器偵聽特定端口上(3000在下面的例子):
const PORT = 3000;
app.listen(PORT, function() {
console.log("Server is listening on port " + PORT + ".");
}); // the callback function simply runs once the server starts
現在打開你的瀏覽器,然後導航到127.0.0.1:3000
或localhost:3000
,你會看到「谷歌」的出現!
ALSO:如果你想在一個完整的HTML頁面(而不僅僅是發送它自己的字符串)使用響應數據,你可能要進一步探討如何用玉做的快(或類似的)模板。而且,每當有人向您的服務器的相應路徑發出請求時,此時的代碼就會向Google進行刮擦;如果你只想刮一次Google,然後在服務器的響應中一次又一次地使用相同的字符串,你可能想要考慮如何實現這個(很簡單!)。