我刚刚进入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没有报告原型中的附加功能,有趣。
答案 0 :(得分:4)
Controller.prototype = {
processAction : function(){
// code
},
anotherMethod : function(){
}
}
答案 1 :(得分:1)
使用:
Controller.prototype = {
processAction : function(action) {
console.log("Processing Action.");
}
}