2017-03-20 98 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.