2017-03-20 93 views
2

如何導出和使用ECMA6類?這就是我現在所做的:導出和導入ECMA6類

parser.js

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

    static doNow() { 
    } 
} 
在另一個文件

現在,我做的:

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

parse叫上Parser,我得到一個錯誤的說法

SyntaxError: Unexpected identifier 

突出顯示Parser

這可能是什麼原因?導出和導入類的正確性是什麼?

+0

一個SyntaxError指Javascript是畸形的,而不是我的價值ncorrect。你能顯示實際的調用代碼嗎? – lonesomeday

+0

當您詢問es6時,請勾選[here](http://2ality.com/2014/09/es6-modules-final.html) –

回答

2

您嘗試以絕對方式調用您的模塊,這是造成問題的原因。

我推薦使用IDE作爲webstorm或原子不會有這種問題在未來

試試這個:

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

爲ES6是:

export default class Parser { 
    static parse() { 
    } 

    static doNow() { 
    } 
} 

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

我測試這和看起來問題是解析器的路徑。

文件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() { 
    } 
} 

終端

node index.js 
parser hello there 
2

它更容易和更具可讀性像這樣做:

class Parser { 
    static parse() { 
    } 

    static doNow() { 
    } 
} 

module.exports = Parser; 

和要求模塊:

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