NodeJS中的模块继承

时间:2016-03-23 13:57:29

标签: javascript node.js inheritance module

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

这是我到目前为止所做的:

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

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方法来继承父模块的方法,但它们不会出现在返回的模块中。 任何人都可以告诉我哪里出错了,这是不是一个好主意?

谢谢!

1 个答案:

答案 0 :(得分:2)

我在util.inherits函数中使用了错误的对象!

应该是:

util.inherits(JustGivingAPI, APIBaseController);