2015-06-19 11 views
1

Я использую:код работает при запуске консоли узла, но не при вызове узла <app_name.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 и Event Loop?

Спасибо,

Zakiir


Edit: Я использую файл babyparse.js найти на GitHub, а не файл .js найти на НОМ, который не имеет функции parseFiles.

+2

может быть ошибкой, произошедшей, babyparse предоставляет переменную ошибки, которую вы можете проверить, выполнив console.log (fs_test_data.error) –

+0

yep, похоже, что есть 'ReferenceError: fs не определено'. Ошибка программирования? – zedjay72

ответ

1

пю!

так что да, я просмотрел источник файла babyparse.js и заметил, что «fs» не определен.

Я написал

fs = require('fs'); 

в моем test_babyparse.js, которые я считаю множества 'фс' в глобальном масштабе.

Это сработало!


Edit: Судя по всему, это не хорошая практика, чтобы добавить вещи в глобальном масштабе, как это, так что я добавил

var fs = require('fs'); 

в файле babyparse.js.