Я пытаюсь создать приложение командной строки узла. Что я делаю, это извлечение писем из документа, полного информации.Приложение командной строки Nodejs: неожиданный токен `else '
Но когда я запустить команду npm link
, чтобы сделать сценарий доступен по всему миру, я получаю эти ошибки:
/c/Users/petfle/AppData/Roaming/npm/email-extract: line 11: syntax error near unexpected token `else'
/c/Users/petfle/AppData/Roaming/npm/email-extract: line 11: `else '
Мой код прошел пыление, и я не могу видеть возможные неточности. Я новичок в узле, поэтому это может быть что-то простое, узкоспециальное, чего я не вижу.
Вот мой код:
#!/c/Program\ Files/nodejs/node
var file_stream = require('fs');
var source = process.argv[2];
var output = process.argv[3];
file_stream.readFile(source, 'utf8', function (error, data) {
var list_of_emails = extract_emails(data);
write_to_file(list_of_emails);
});
function extract_emails(data) {
return data.match(/([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/g);
}
function write_to_file(emails) {
file_stream.writeFile(output, emails.join('\n'), 'utf8', function (error) {
console.log('Wrote ' + emails.length + ' lines to ' + output);
});
}
EDIT: Это работает, если я удалить хижину и запустить его с node myscript.js file.txt file2.txt
. Я на окнах.
EDIT 2: Я запускаю это в Git Bash. Даже в окнах он выполнял более простой скрипт с помощью shebang.
Вы пытались удалить [shebang] (http://en.wikipedia.org/wiki/Shebang_ (Unix))? –
Тогда я не могу запустить его как приложение командной строки. Мне нужно указать интерпретатор сценария. – ptf