2016-08-05 2 views
0

Итак, я загрузил некоторый проект node.js-express в свою Eclipse IDE с перспективой JavaScript. Я получаю кучу странных ошибок, в том числеСтранные ошибки компилятора в модулях Eclipse для узлов

  1. не может вернуться из-за пределов функции
  2. Ошибка синтаксиса на маркер «» ,. Ожидаемый
  3. Ошибка синтаксиса; ожидаемый

Ниже приведен пример ошибки «возврат внешней функции».

#!/usr/bin/env node 
    'use strict'; 
    var pkg = require('./package.json'); 
    var supportsColor = require('./'); 
    var argv = process.argv.slice(2); 

    function help() { 
     console.log([ 
      '', 
      ' ' + pkg.description, 
      '', 
      ' Usage', 
      ' supports-color', 
      '', 
      ' Exits with code 0 if color is supported and 1 if not' 
     ].join('\n')); 
    } 

    if (argv.indexOf('--help') !== -1) { 
     help(); 
     return; //<-error 
    } 

    if (argv.indexOf('--version') !== -1) { 
     console.log(pkg.version); 
     return; 
    } 

    process.exit(supportsColor ? 0 : 1); 

Вот пример «отсутствует»; ошибка:

function createParserGetter(name) { 
    return function get() { 
    return loadParser(name) //<- error 
    } 
} 

Я подозреваю, что последнее является просто придирчивым парсером. Первое похоже на его артефакт того факта, что мы используем фреймворк (node ​​+ express), поэтому сам код не является полным (потому что он будет введен?).

Спасибо!

ответ

0
  1. Вы не можете вернуться за пределы функции: поскольку вы можете видеть, что цикл if находится внутри функции help больше, вы не можете вернуться в if.

  2. просто напишите точку с запятой после: «return loadParser (name)» следующим образом: «return loadParser (name);»

+0

Я знаю синтаксис JavaScript ... что меня поразило в том, что эта программа совершенно функциональна. Я хочу знать, почему ошибки здесь не являются ошибками. –

+0

OH так: 1. оператор return просто игнорируется, но код работает по-прежнему, потому что нет необходимости в возврате в выражении if, если после возврата будет что-то, или оно вернет значение, я бы 't work – Kamil

+0

2. там не осталось ничего после точки с запятой, если бы это было, это не сработало бы снова, но нет ничего, поэтому просто игнорируется. В javascript JSLint Ошибки, подобные этому, игнорируются для примера: каждый использует «alert()» для тестирования, но на самом деле это неправильно, вы не можете использовать такое предупреждение, поэтому оно вызывает ошибку JSLint, но оно просто игнорируется и фиксируется браузер или затмение, например. – Kamil

Смежные вопросы