【发布时间】:2012-05-13 23:24:07
【问题描述】:
在我的app.js 中,我设置了以下设置
app.set('mailTemplatesDir', __dirname + '/mails');
现在我想在我的一个控制器中读取'mailTemplatesDir' 的值,如何访问那里的设置?我不希望将app 设为全局变量。
【问题讨论】:
在我的app.js 中,我设置了以下设置
app.set('mailTemplatesDir', __dirname + '/mails');
现在我想在我的一个控制器中读取'mailTemplatesDir' 的值,如何访问那里的设置?我不希望将app 设为全局变量。
【问题讨论】:
如果您通过通常调用createServer() 创建了app,那么在不通过该函数返回的对象的情况下,确实没有其他方法可以访问选项设置。 Express 不会缓存服务器对象,而只是在对象上返回new 的结果。
如果您使用为您生成的标准 express 样板创建了您的应用程序,您可能有一行创建 app 如下所示:
var app = module.exports = express.createServer();
这实际上并没有将app 创建为全局变量,而是使其可用作模块导出。您可以通过这种方式要求您的 app.js 模块,从另一个模块访问您的 mailTemplatesDir 选项:
var templateDir = require('./app').set('mailTemplatesDir');
【讨论】: