2017-03-20 26 views
2

Wie exportiert und verwendet die Klasse ECMA6? Das ist, was ich tue jetzt:Exportieren und importieren Sie die Klasse ECMA6

parser.js

module.exports = class Parser { 
    static parse() { 
    } 

    static doNow() { 
    } 
} 

nun in einer anderen Datei, ich tue:

var Parser = require('parser') 
Parser.parse(); 

Wenn parse auf Parser genannt wird, erhalte ich eine Fehler, der

SyntaxError: Unexpected identifier 

sagt mit Parser hervorgehoben.

Was könnte der Grund dafür sein? Was ist der richtige Export und Import der Klasse?

+0

Eine Syntax bedeutet, dass die Javascript ist falsch, anstatt dass der Wert i ist nkorrekt. Können Sie den tatsächlichen Anrufcode anzeigen? – lonesomeday

+0

Wie Sie über es6 fragen, überprüfen Sie [hier] (http://2ality.com/2014/09/es6-modules-final.html) –

Antwort

2

Sie versuchen, Ihr Modul auf eine absolute Weise aufzurufen, das ist das Problem.

Ich empfehle eine IDE als WebStorm oder Atom nicht mit dieser Art von Problem haben, in der Zukunft

try this:

var Parser = require('path/path/parser.js'); 
    Parser.parse(); 

für es6 ist:

export default class Parser { 
    static parse() { 
    } 

    static doNow() { 
    } 
} 

import Parser from './path/path/parser'; 
0

I getestet dies und es scheint das Problem ist der Weg des Parsers.

Datei Structor

-index.js

-parser.js

index.js

var Parser = require('./parser') 
console.log('parser',Parser.parse()); 

parser.js

module.exports = class Parser { 
    static parse() { 
     return 'hello there' 
    } 

    static doNow() { 
    } 
} 

Klemme

node index.js 
parser hello there 
2

Es ist einfacher und besser lesbar es wie dies zu tun:

class Parser { 
    static parse() { 
    } 

    static doNow() { 
    } 
} 

module.exports = Parser; 

und im bedürftigen Modul:

const Parser = require('./path/to/module'); 
Parser.doNow(); 
// etc. 
Verwandte Themen