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; } }