我最初的問題被標記為一個完全不相關的問題的重復,該問題與我的問題完全沒有共同點,所以我重新發布了一些澄清,希望能更清楚地說明我想要做什么。
假設我在不是我的服務器的服務器上有一個檔案:
https://example.com/names.txt
是否有一個函式可以讓我將此檔案作為 aString或 a讀取Buffer?
顯而易見的解決方案是將檔案下載到一個臨時目錄中,讀取其內容,然后將其洗掉,但這非常慢并且需要多行代碼。有沒有更干凈的方法來做到這一點?
uj5u.com熱心網友回復:
您必須向該服務器發出該檔案的請求。(例如 GET 請求)使用您選擇的模塊。
使用 HTTP 模塊發出請求
注意:在示例d中,on('data', ...)回呼將是您想要的。
uj5u.com熱心網友回復:
假設檔案位于 http 服務器上,您可以使用此處列出的 http 請求模塊之一來請求該檔案。通常的默認行為是將來自 http 服務器的回應放入記憶體中,但您可以根據需要將其放入檔案中。
內置的 http 庫可以做到這一點,但它比我上面鏈接中的更高級別的庫需要更多的代碼行,這是它們的主要好處。
這是一個簡單的示例,使用我最喜歡的此類別庫選擇got模塊(具有內置的 promise 支持):
const got = require('got');
got("https://someserver.com/somefile.txt").text().then(result => {
console.log(result);
}).catch(err => {
console.log(err);
});
該got庫具有的方法.text(),.json()以及.buffer()用于獲取回應主體,決議它(如果必要的話),并把結果放入正確型別的變數。我上面的例子使用,.text()因為你提到將回應轉換為字串。如果你想在緩沖區中使用它,你可以使用它.buffer()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/377435.html
標籤:javascript 节点.js 文件系统
