2016-03-23 6 views
3

So ist heute der Knoten nicht meinen app laufen, weil es an der Linie 219. Hier unerwartetes Token findet, ist das vollständige Fehlerprotokoll:Invisible mythisches unerwartetes Token auf unexisting Linie in Node.js

[email protected]:~/Web/lotalot$ node app.js 
/home/syberic/Web/lotalot/config/passport.js:219 
}); 
^ 

SyntaxError: Unexpected token) 
    at exports.runInThisContext (vm.js:53:16) 
    at Module._compile (module.js:387:25) 
    at Object.Module._extensions..js (module.js:422:10) 
    at Module.load (module.js:357:32) 
    at Function.Module._load (module.js:314:12) 
    at Module.require (module.js:367:17) 
    at require (internal/module.js:16:19) 
    at Object.<anonymous> (/home/syberic/Web/lotalot/app.js:22:1) 
    at Module._compile (module.js:413:34) 
    at Object.Module._extensions..js (module.js:422:10) 
    at Module.load (module.js:357:32) 
    at Function.Module._load (module.js:314:12) 
    at Function.Module.runMain (module.js:447:10) 
    at startup (node.js:141:18) 
    at node.js:933:3 

BUT Die PROBLEM ist, die Datei hat Zeilen! Hier ist ein Screenshot, wie das Ende dieser Datei in VIM aussieht: enter image description here Ich inspizierte die Datei mit einigen anderen Texteditoren, mousepad, gedit, etc. Aber die Datei hat immer 217 Zeilen. Wenn ich am Ende der Datei ein paar leere Zeilen hinzufüge, bewegt sich das unerwartete Token jeweils nach unten. Was für eine Art von MAGIC ist das? Wie kann das passieren? Ich bin so verdammt frustriert.

+0

Sie transpiling Ihren Code mit Babel oder etwas? Wenn Sie und Quellkarten ausgeschaltet sind, würde das die unterschiedlichen Zeilennummern erklären. –

+0

Wie erkennen Sie, ob Code transpiliert? Ich denke ich nicht, es ist nur reine Express-App. – Syberic

Antwort

4

Ich denke, das bedeutet, dass Sie eine zusätzliche öffnende Klammer in Ihrem Programm haben. Intern fügt Node den Text Ihres Programms in eine Funktion ein, so dass einige zusätzliche Zeichen vor dem Dateiinhalt und eine zusätzliche Zeile dahinter stehen. Ich kann dies reproduzieren leicht mit dieser einzeiligen Datei, die in ihm nur eine offene Klammer hat:

$ cat foo.js 
{ 
$ node foo.js 
/Users/dap/foo.js:3 
}); 
^ 
SyntaxError: Unexpected token) 
    at Module._compile (module.js:439:25) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Function.Module.runMain (module.js:497:10) 
    at startup (node.js:119:16) 
    at node.js:906:3 

Ich würde vorschlagen, ein Tool wie javascriptlint mit der zusätzlichen offenen Klammer zu finden.

+1

Eigentlich ist das das Problem. Extra öffnende Halterung, vielen Dank! – Syberic