2015-11-09 17 views
8

Ich bin mir nicht sicher, was diesen Fehler in Node.js verursachen könnte, da ich es noch nie zuvor gesehen habe und kein anderes Problem online finden kann.Unerwartetes Token =

Message: 
    Unexpected token = 
Stack: 
SyntaxError: Unexpected token = 
    at exports.runInThisContext (vm.js:53:16) 
    at Module._compile (module.js:404:25) 
    at Object.Module._extensions..js (module.js:432:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:311:12) 
    at Module.require (module.js:366:17) 
    at require (module.js:385:17) 
    at Object.<anonymous>  (/Projects/api/test/integration/models/article.js:3:15) 

die Datei, die den Fehler verursacht hat folgenden Inhalt:

'use strict'; 

var Article = require('../../../models/article') 

Warum in der Welt würde = einen Fehler verursachen?

Edit 1 - die article.js hinzufügen, die erforderlich wird: in der 3. Zeile von article.js

'use strict'; 

class ArticleModel { 

    constructor(options = {}) { 
    this.options = options 
    } 

} 

module.exports = ArticleModel 
+0

es kann die Datei nicht gefunden. Manchmal gibt es Ihnen eine Fehlermeldung und wird eher ungewöhnlich interpretiert. – MiltoxBeyond

+0

Brauchen Sie am Ende kein Semikolon? – gariepy

+0

Ist das die gesamte Datei? Wenn eine Datei nicht gefunden wird, sollte ein Fehler wie folgt auftreten: 'Fehler: Modul nicht gefunden'. Ist es auch möglich, dass es ein merkwürdiger Unicode = ähnlicher Charakter ist? – EmptyArsenal

Antwort

8

node.js 5.0 unterstützt noch nicht alle ES6-Funktionen. Insbesondere unterstützt es noch keine Standardparameter.

Also diese Zeile:

constructor(options = {}) { 

ist, was den Fehler mit der = Zuordnung verursacht.

Siehe this table, für die Funktionen in node.js 5.0 unterstützt werden.


Sie können die Standard-Parametrierung mit der altmodischen Methode ersetzen:

constructor(options) { 
    this.options = options || {}; 
} 
+0

Spot on. OP, verwenden Sie die vorgeschlagene Methode oder verwenden Sie "babel-core", um Unterstützung für diese Syntax zu erhalten. – GPX

-1

Der Fehler.

+0

Der Inhalt am Ende der Frage ist die article.js-Datei, die es einen Fehler gibt. Die Testdatei heißt 'test/integrations/models/article.js' und lädt' ../../../ models/article.js'. –

+0

trotzdem, suchen Sie einen Fehler im ursprünglichen Modul –

0

Ich denke, Ihre aktuelle Node.js Verteilung nicht Standard-Parameterwerte unterstützt.

Sie sollten es entfernen:

constructor(options) { 
    this.options = options || {}; 
    } 

Oder versuchen Sie mit --harmony Laufzeit Flagge zu spielen.


Nach this link--harmony kann nicht helfen, diese Funktion in node5.0 gar nicht umgesetzt.

0

I Knoten v5.7.0 bin mit und können Standardparameter mit dieser Option aktivieren: --harmony-default-Parameter