在Express.js中,是否有一个相当于res.locals的路由

In Express.js, is there a route equivalent to res.locals?

本文关键字:res 相当于 locals 路由 有一个 是否 Express js      更新时间:2024-06-13

使用Express.js/Jeded时,可以向res.locals添加一个函数(或变量),然后在Jade视图中使用该函数,如下所示。

In Express中间件:

res.locals.myUtilFunction = function(){ return 'Hello' };

翡翠:

- console.log(myUtilFunction());

有可能在快速路线功能内部实现类似的功能吗?类似:

exports.index = function(req, res){
    myUtilFunction(); //Instead of having to do res.locals.myUtilFunction() each time...
}

我到处找答案,但都找不到。如有任何帮助,我们将不胜感激。

您可以使用自定义函数将您想要的任何内容绑定到请求和响应对象。这样,您就不必绑定到全局范围。

在加载路由器之前,只需将其放入初始化代码中即可。

app.use function(req, res, next) {
    req.loadWhatever = function() { ... };
    return next();
}

在您的路由方法中,您可以访问req.loadWhatever

是的,你可以将它绑定到全局,尽管我可能会避免使用这个

app.js

global.myFunction = function (text){ 
  console.log(text);
}
var express = require('express');
var routes = require('./routes');
....

routes/index.js

exports.index = function(req, res){
  myFunction('test');
  res.render('index', { title: 'Express' });
};