在node.js上访问快速应用程序控制器中的app.set设置

在我的app.js我设置了以下设置

 app.set('mailTemplatesDir', __dirname + '/mails'); 

现在我想在我的一个控制器中读取'mailTemplatesDir'的值,如何访问那里的设置? 我不想让app成为一个全局variables。

如果你已经用通常的createServer()调用创build了你的app ,那么真的没有别的办法来访问选项设置,而不需要通过该函数返回的对象。 Express不会caching服务器对象,而只是返回对象的new结果。

如果您使用为您生成的标准快速样板创build了app ,那么您可能会创build一个app ,如下所示:

 var app = module.exports = express.createServer(); 

这实际上并不是将app创build为全局variables,而是将其作为模块导出提供。 您可以通过mailTemplatesDir方式访问您的app.js模块,从另一个模块访问您的mailTemplatesDir选项:

 var templateDir = require('./app').set('mailTemplatesDir');