ES6类,父母在不同的文件,和node.js?

在node.js中使用在一个文件中定义的类并扩展另一个类的正确方法是什么?

目前我有:

'use strict' class BasePageHandler { constructor(app, settings, context) { } } return module.exports; 

在“孩子”类文件中,我有:

 'use strict' var BasePageHandler = require ('./../BasePageHandler.js'); class FrontpagePageHandler extends BasePageHandler { constructor(app, settings, context) { super(app, settings, context); this.settings = settings; this.context = context; } } 

这失败了以下错误:

 TypeError: Class extends value #<Object> is not a function or null 

请注意,如果我有BasePageHandler在同一个文件,那么它的作品,所以这是真的当这个类是在另一个文件,我有一个问题。

目前使用节点4.4.0。

您需要在BasePageHandler.js文件中正确导出您的类:

 module.exports = BasePageHandler; 

接受的答案在技术上是好的,但是如果你使用的是ES6,那么你应该全力以赴并使用ES6导出/导入 。

 /*jshint esversion: 6 */ class BasePageHandler { constructor(app, settings, context) { } } export default BasePageHandler; 

接着:

 /*jshint esversion: 6 */ import BasePageHandler from './../BasePageHandler.js'; class FrontpagePageHandler extends BasePageHandler { constructor(app, settings, context) { super(app, settings, context); this.settings = settings; this.context = context; } }