希望我能得到一些帮助,将csv文件读取到节点应用程序的二维数组中。
我还看到过其他问题的答案,它们建议使用papaparse、jquery-csv和csv npm包。我已经阅读了每个解决方案的文档,并不知道我的程序将在流程中的何处读取csv。
我的documents文件夹中有一个csv文件:例如C:\Documents\Folder\data.csv。
我希望我可以让程序读取data.csv,它的格式如下
header0 header1 header2 header3 header4 header5 header6 header7 header8 header9
data data data data data data data data data data
data data data data data data data data data data
并将其放入名为myarray的数组中
我的数组会给我header9等等。
下面是我尝试jquery-csv时得到的结果
var fs = require('fs');
var csv = require('./jquery.csv.js');
var sample = 'C:\Documents\Folder\data.csv';
var myarray = $.csv.toArrays(sample);
我收到的错误是
ReferenceError: $ is not defined
at Object.<anonymous> (C:\Users\0121160\Documents\Nodejs\readcsv.js:7:14)
[90m at Module._compile (internal/modules/cjs/loader.js:959:30)[39m
[90m at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)[39m
[90m at Module.load (internal/modules/cjs/loader.js:815:32)[39m
[90m at Function.Module._load (internal/modules/cjs/loader.js:727:14)[39m
[90m at Function.Module.runMain (internal/modules/cjs/loader.js:1047:10)[39m
[90m at internal/main/run_main_module.js:17:11[39m
注意:我对javascript,node,jquery的使用经验非常少。
任何帮助都将不胜感激。
谢谢!
发布于 2020-01-15 02:33:16
来自https://www.npmjs.com/package/jquery的。
要在Node中包含jQuery,首先要与npm一起安装。
npm install jquery
要使jQuery在节点中工作,需要一个包含文档的窗口。由于Node本身不存在这样的窗口,因此可能会被jsdom等工具模仿。这对于测试目的很有用。
require("jsdom").env("", function(err, window) {
if (err) {
console.error(err);
return;
}
var $ = require("jquery")(window);
});
发布于 2020-01-15 02:34:52
错误显示为$ is not defined
,因此您需要使用var myarray = csv.toArrays(sample);
。
由于您没有导入分配给变量$
的任何内容,因此变量$
对您的程序没有任何意义。
我也怀疑var csv = require('./jquery.csv.js');
能否正常工作,您可能必须先npm install jquery-csv
,然后将var csv = require('jquery-csv')
导入到您的模块中。
发布于 2020-01-15 02:40:19
jQuery的设计目的是帮助在网页上嵌入JavaScript来做一些常见的事情。jQuery CSV是它的一个插件。
由于您编写的软件要在Node.js上运行,而不是在网页上运行,因此jQuery并不是库…的理想选择所以不要使用它,也不要使用插件。
获取针对csv-parser等Node.js优化的CSV解析器
const fs = require('fs');
const csv = require('csv-parser')
const path = 'C:/Documents/Folder/data.csv';
const results = [];
fs.createReadStream(path)
.pipe(csv())
.on('data', (data) => results.push(data))
.on('end', () => {
console.log(results);
});
https://stackoverflow.com/questions/59739683
复制相似问题