代码在运行节点控制台时起作用,但在调用节点<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文件中。