将本地资源变量域/协议传递到Express中查看

Pass local res variable domain/protocol to view in Express

本文关键字:Express 协议 资源 变量      更新时间:2023-09-26

我想传递一个本地变量到我的视图,它存储协议/域。比如:'https://mywebsite.com', 'http://localhost:8000',等等'

在我的express应用程序中,我将一个自定义请求对象传递给res.locals对象

  app.use(function(req, res, next) {
    res.locals.domain = req.protocol + '://' + req.headers.host;
    // outputs 'http://locahost:8000'
    console.log(res.locals.domain)
    next();
  });
  // middleware, etc
  // using angular
  app.get('*', function(req, res) {
    res.render('index', {
      request: req
    });
  });

然而,在我看来,当我输出{{ domain }}时,它输出undefined

<p>{{ domain }}</p>

路由:

app.get('*', function(req, res) {
    res.render('index', {
        request: req,
        domain: res.locals.domain
    });
});
现在可以访问

Domain,因为您将其添加到对象中。注意:这现在取决于你的模板/渲染引擎-但你的模板/渲染引擎现在可以访问域变量。

<p>{{ domain }}</p>