4

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

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

现在我想读取'mailTemplatesDir'我的一个控制器中的值,如何访问那里的设置?我宁愿不做app一个全局变量。

4

1 回答 1

4

如果您已经app通过通常的调用创建了您的,createServer()那么在不通过该函数返回的对象的情况下,真的没有其他方法可以访问选项设置。Express 不缓存服务器对象,而只是返回对象new上的结果。

如果您使用为您生成的标准 express 样板创建了您的应用程序,您可能会创建app如下所示的行:

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

这实际上并未创建app为全局变量,而是使其可用作模块导出。您可以mailTemplatesDir通过以下方式要求您的模块从另一个模块访问您的选项app.js

var templateDir = require('./app').set('mailTemplatesDir');
于 2012-05-13T15:24:07.437 回答