向 Express 路由添加元数据

4
有没有办法在Express的路由中添加元数据?例如:
app.get("/some/route", function(req,res) {
// ...
}, { some: 'meta-data' });

我正在寻找一种类似AOP的方法来处理我的节点应用程序,因此我想使用身份验证和/或日志记录代理某些路由。为此,我需要能够为每个路由分配某种钩子标识符,以指示它应该被代理,因此AOP对各个方法一无所知,而方法也不知道AOP框架...

然后,不要离题太远,我会使用像hooker或其他代理库之类的东西来检查所有路由,其中有some并添加一个thing拦截器。

总之,有没有最佳实践的方法来执行上述操作?

1个回答

6
你离正确答案很近了。你可以使用bind方法来将变量绑定到函数调用。
app.get("/some/route", function(req,res) {
  res.send(this.test);
}.bind({test:'<html><body>hello world</body></html>'}));

你这个邪恶的天才,现在去试一试吧,因为我需要确保我可以检查某个路径是否绑定了给定的变量。 - Grofit
确保在访问时将“this”添加到测试中。我在原始帖子中漏掉了这一点。 - Daniel
似乎很难获取那种元数据的访问权限,所以也许我应该考虑使用中间件,因为这基本上就是我想做的事情,只是不需要在路由中显式绑定中间件。除此之外,知道你可以像那样绑定真的很有用,在这个问题的背景下,我想你已经得到了答案。 - Grofit
天啊,这个人真是个天才!多么精妙的黑客技巧! - Rouz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接