NodeJS Module.Exports Object Prototype Problem

时间:2011-06-22 22:13:05

标签: javascript node.js function-prototypes

我刚刚进入NodeJS,并试图为它创建一个(非常)基本的MVC实现。

归结为以下几点。我有一个控制器的主要对象,我正在尝试创建一个原型;代码如下:

var Controller = function(obj) {

    this.request = null;
    this.response = null;
    this.params = null;
    this.layout = 'default';    

}

Controller.prototype = new function() {

    this.processAction = function(action) {
        console.log("Processing Action.");
    }

}

module.exports = new Controller();

我为这个问题剥离了大部分值/函数,因为它们没有真正关联。基本上我从使用module.exports的理解将使用require()函数将对象导出到变量。我的调度员有以下内容:

var Controller = require('./Controller.js');

问题在于每当我打印出变量控制器时,我得到了对象的第一部分,但原型尚未包含在内。请参阅以下打印输出:

{ request: null,
  response: null,
  params: null,
  layout: 'default' }

因此,调用原型函数Controller.processAction()会导致无方法错误。我是否宣布这个原型是错误的还是我缺少与NodeJS有关的东西?

[编辑]

我也尝试过以下样式来添加原型无效。

Controller.prototype = {
    'processAction' : function(action) {
        console.log("Processing Action");
    }
}

[编辑2]

没关系,以上工作的console.log没有报告原型中的附加功能,有趣。

2 个答案:

答案 0 :(得分:4)

Controller.prototype = {
    processAction : function(){
        // code
    },

    anotherMethod : function(){
    }
}

答案 1 :(得分:1)

使用:

Controller.prototype = {
    processAction : function(action) {
        console.log("Processing Action.");
    }
}