And*_*e M 21 javascript node.js
在node.js中使用在一个文件中定义的类并将其扩展为另一个文件的正确方法是什么?
目前我有:
'use strict'
class BasePageHandler {
constructor(app, settings, context) {
}
}
return module.exports;
Run Code Online (Sandbox Code Playgroud)
在'child'类文件中,我有:
'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;
}
}
Run Code Online (Sandbox Code Playgroud)
此操作失败,并显示以下错误:
TypeError: Class extends value #<Object> is not a function or null
Run Code Online (Sandbox Code Playgroud)
注意,如果我在同一个文件中有BasePageHandler那么它可以正常工作,所以它真的是当这个类在另一个文件中时我遇到了问题.
目前使用节点4.4.0.
mad*_*ox2 33
您需要在BasePageHandler.js文件中正确导出您的类:
module.exports = BasePageHandler;
Run Code Online (Sandbox Code Playgroud)
jon*_*ink 12
接受的答案在技术上很好,但是如果你使用ES6那么你应该全力以赴并使用ES6导出/导入.
/*jshint esversion: 6 */
class BasePageHandler {
constructor(app, settings, context) {
}
}
export default BasePageHandler;
Run Code Online (Sandbox Code Playgroud)
然后:
/*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;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15842 次 |
| 最近记录: |