代码在运行节点控制台时有效,但在调用节点<app_name.js>时无效

时间:2015-06-19 03:05:09

标签: javascript node.js

我正在使用:

npm install babyparse --save

调用

node

在终端(OS X Yosemite)中,我运行以下命令并查看输出:

> 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上找到的babyparse.js文件,而不是在没有parseFiles函数的npm上找到的.js文件。

1 个答案:

答案 0 :(得分:1)

唷!

所以是的,我查看了babyparse.js文件的来源并注意到'fs'没有被定义。

我写了

git branch

在我的test_babyparse.js中,我相信在全球范围内设置'fs'。

有效!

编辑:显然,将这​​些东西添加到全球范围内是不好的做法,所以我添加了

fs = require('fs');

在babyparse.js文件中。