Ответ 1
Вам нужно правильно экспортировать свой класс в файл BasePageHandler.js
:
module.exports = BasePageHandler;
Каков правильный способ использования класса, определенного в одном файле, и продлить его другим, в node.js?
В настоящее время у меня есть:
'use strict'
class BasePageHandler {
constructor(app, settings, context) {
}
}
return module.exports;
В файле класса "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;
}
}
Это не выполняется со следующей ошибкой:
TypeError: Class extends value #<Object> is not a function or null
Обратите внимание, что если у меня есть BasePageHandler в том же файле, тогда он работает, поэтому действительно, когда класс находится в другом файле, у меня есть проблема.
В настоящее время используется node 4.4.0.
Вам нужно правильно экспортировать свой класс в файл BasePageHandler.js
:
module.exports = BasePageHandler;
Принятый ответ технически хорош, но на самом деле, если вы используете ES6, вам нужно пойти и использовать ES6 export/import.
/*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;
}
}