我有一個csv文件,其中包含大約10k條記錄。我需要在我的nodejs應用程序中逐一檢索它。從nodejs中的CSV文件中獲取數據
情景是當用戶第一次點擊按鈕「X」時,異步請求被髮送到nodejs應用程序,它從CSV文件的第一行獲取數據。當他再次點擊時,它會顯示來自第二行的數據並繼續進行。
我試過使用fast-csv和懶惰,但他們都讀完整的文件。他們是我能達到時間的一種方式嗎?
我有一個csv文件,其中包含大約10k條記錄。我需要在我的nodejs應用程序中逐一檢索它。從nodejs中的CSV文件中獲取數據
情景是當用戶第一次點擊按鈕「X」時,異步請求被髮送到nodejs應用程序,它從CSV文件的第一行獲取數據。當他再次點擊時,它會顯示來自第二行的數據並繼續進行。
我試過使用fast-csv和懶惰,但他們都讀完整的文件。他們是我能達到時間的一種方式嗎?
節點配備了readline模塊在它的核心,讓您在處理由線可讀的流線。
var fs = require("fs"),
readline = require("readline");
var file = "something.csv";
var rl = readline.createInterface({
input: fs.createReadStream(file),
output: null,
terminal: false
})
rl.on("line", function(line) {
console.log("Got line: " + line);
});
rl.on("close", function() {
console.log("All data processed.");
});
rl.on(「line」)逐行讀取完整的文件..我需要從客戶端獲取請求後讀取每一行 – casper123
因此,您希望在獲取HTTP請求時逐行讀取文件或什麼?我想我錯過了你想說的話。用例子來更新你的問題? –
我認爲多米尼克塔爾模塊'拆分'就足夠了。 它逐行分解流。 https://npmjs.org/package/split
fs.createReadStream(file)
.pipe(split())
.on('data', function (line) {
//each chunk now is a seperate line!
})
有一個[插件](https://npmjs.org/package/line-by-line)爲 – adeneo
@adeneo ..是不是有什麼辦法做到這一點沒有任何外部插件? – casper123