我目前正在使用带有节点的 Express,并且在尝试从我的一个路由函数内部使用自定义模块时遇到了问题。这是我到目前为止所拥有的。
在我的 app.js 文件中,我需要这样的模块。
c_controller = require( './core/c_controller' );
我知道这是正确的,因为我通过控制台将其注销并且显示正常。
c_controller 模块如下所示。
var c_controller = {
styles: [],
script: '',
view: ''
};
c_controller.add_style = function( style ) {
this.styles.push( style );
return this;
},
c_controller.set_script = function( script ) {
this.script = script;
return this;
},
c_controller.set_view = function( view ) {
this.view = view;
return this;
},
c_controller.render = function() {
return { script: this.script,
styles: this.styles,
view: this.view };
}
exports.add_style = c_controller.add_style;
exports.set_script = c_controller.set_script;
exports.set_view = c_controller.set_view;
exports.render = c_controller.render;
出现的错误是 500 ReferenceError: c_controller is not defined。
现在我不确定我是否必须将 c_controller 对象传递给我的路由函数,无论哪种方式我都不知道该怎么做。
我任何人都可以向我解释这一点,以使其更清楚,那将是很棒的。
提前致谢。
更新
这是使用 c_controller 的代码
/*
* GET home page.
*/
exports.index = function(req, res){
c_controller.set_view( 'index' );
res.render( 'includes/overall_template', { c_controller.render() } );
};
现在,如果我需要 c_controller 直接进入它的工作路线。我宁愿只需要主应用程序文件中的模块,所以我不必在每条路线上都这样做。有谁知道这是否可能?