代码在运行节点控制台时起作用,但在调用节点<app_name.js>时不起作用
我在用着:
npm install babyparse --save
调用时
node
在terminal(OS X优胜美地),我运行以下命令,看到输出:
> var Baby = require('babyparse'); undefined > var fs_test_data = Baby.parseFiles('fs_test.csv'); undefined > var rows = fs_test_data.data; undefined > rows.forEach(function(element, index, array){ ... console.log(element); ... console.log(index); ... }); [ '3000', ' 1000', ' 2000', ' 30', ' 0', ' 1', '' ] 0 [ '3000', ' 1000', ' 2000', ' 40', ' 0', ' 5', '' ] 1 undefined >
那很棒! 有用!
但….
//test_babyparse.js var Baby = require('babyparse'); var fs_test_data = Baby.parseFiles('fs_test.csv'); var rows = fs_test_data.data; rows.forEach(function(element, index, array){ console.log(element); console.log(index); });
并运行
node test_babyparse.js
结束了什么都没有。 为什么? 这是否与IO和事件循环有关?
谢谢,
Zakiir
编辑:我使用github上find的babyparse.js文件,而不是在npm上find的没有parseFiles函数的.js文件。
唷!
所以是的,我查看了babyparse.js文件的来源,发现“fs”没有定义。
我写了
fs = require('fs');
在我的test_babyparse.js中,我相信在全局范围内设置“fs”。
有效!
编辑:显然这是不好的做法,像这样的东西添加到全球范围,所以我补充说
var fs = require('fs');
在babyparse.js文件中。