通过“设置”我的意思是“设置的东西”,类似于Java中的“setters”。其他OO语言,而不是Express的“应用程序设置”。有没有办法访问并理想地使用应用程序在中间件use()
d中设置的“设置”?特别是,一些中间件是一个完整的Express应用程序,如vhost
和Express 4.x附带的新Router
中间件。如果您在虚拟主机中执行大部分路由并希望从主应用程序访问某些路由参数,则可能会出现问题。如果你有几个层次,尤其如此,那么export
设置一直到主应用程序都会很不方便。
那么有没有办法从主应用程序访问这些设置?
答案 0 :(得分:1)
特别是,一些中间件是一个完整的Express应用程序
Express 4.x有一个很好的新功能来解决这个问题。您现在可以直接使用express.Router
。如果您曾经使用第二个子Express对象作为中间件来使用整个路由路径,那么现在您可以使用路由器。
除此之外,我通常会在请求对象中添加属性,并以我的应用程序名称命名。
function (req, res, next) {
req.myApp = req.myApp || {};
req.myApp.someData='whatever';
next();
}
该行中的下一个中间件可以访问此变量。我使用它来跟踪由第一个中间件分配并随后由其他人使用的唯一连接ID。