javascript - NodeJS 中的模块继承

标签 javascript node.js inheritance module

我正在尝试在 NodeJS 应用程序中实现一些功能,其中我的一些 Controller (模块)将从一个低音模块继承,以便在其中存储所有常见功能。但我很难做到这一点,我不确定为什么。

这是我到目前为止所拥有的:

我的基本模块(其他人将从中继承):

var http = require('http');

function ApiBaseController() {
    var self = this;
}

ApiBaseController.prototype.makeRequest = function() {

};

module.exports = ApiBaseController;

子模块(将从上面的子模块继承:

var APIBaseController = require(__dirname + '/apiBase/ApiBaseController.js'),
                        inherits = require('util').inherits;

function JustGivingAPI() {
    APIBaseController.apply(this);
}

inherits(APIBaseController, JustGivingAPI);

JustGivingAPI.prototype.getAmount = function() {
    console.log("here");
};

module.exports = JustGivingAPI;

以及需要该模块的客户端代码:

var express = require('express');
var router = express.Router();
var JustGivingController = require('../controllers/api/JustGivingAPI');
var APIObject = new JustGivingControllerObject();

我试图从 JustGivingAPI 模块的构造函数中实现 aply Javascript 方法来继承父模块的方法,但它们不会出现在返回的模块中。 谁能告诉我哪里出了问题以及这是否是个好主意?

谢谢!

最佳答案

我在 util.inherits 函数中以错误的方式获取了对象!

应该是:

util.inherits(JustGivingAPI, APIBaseController);

关于javascript - NodeJS 中的模块继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36180239/

相关文章:

javascript - 在我的代码中,元素不会 .fadeTo 。不知道 JavaScript、JQuery、HTML 出了什么问题

javascript - 如何使用 NodeJS dokerode 库获取进程的输出?

java - 在java中用rest返回实现的类型

c++ - 无法使用 const struct timepec 覆盖纯虚函数*

c# - 使用 Script# 编译代码(独立)

javascript - 滚动到页面底部 100 像素时 jQuery 加载内容,触发多个事件

http - Express.js HTTP 请求超时

mysql - 我想自动检测环境并设置适当的变量

php - 在子 PHP 之后自动调用父构造函数

javascript - Angular 2 - 替代 $scope.$apply?