[英]How do I write the results of a Node function to html/console log?
我是node的新手,我試圖將結果打印到控制台,並最終以HTML顯示它們。 我嘗試將函數作為var調用,以后將在HTML中使用,但這沒有用。 一些類似的示例代碼:
var app = require('express')();
var x = require('x-ray')();
app.get('/', function(req, res) {
res.send(x('http://google.com', 'title').write());
})
謝謝!
我對“ x射線”庫知之甚少,但是我認為問題在於它,因為它必須異步發出請求才能返回響應數據。 該文檔說,如果不將路徑設置為write函數的參數,它將返回可讀流,因此請嘗試以下操作:
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
,您將看到“ Google”出現!
還:如果要在完整的HTML頁面中使用響應數據(而不是僅發送其自身的字符串),則可能需要進一步探索如何在Express with Jade(或類似模板)中執行此操作。 每當有人向您的服務器的適當路徑發出請求時,此刻的代碼便會抓取Google; 如果您只想抓取一次Google,然后在服務器的響應中一次又一次地使用相同的字符串,則可能需要考慮如何實現這一點(這很簡單!)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.