Express - 将数据传递到所有路线

发布于 2024-12-16 19:46:51 字数 104 浏览 0 评论 0原文

您好,是否有一种“快速”特定方式可以使一些全球应用程序数据可用于我的所有路线? 或者只是使用 module.exports 语句的情况?

欢迎任何指点。 节点菜鸟 - 顺便说一句

Hi is there a 'express' specific way to make some global app data available to all my routes?
Or is it a case of just using an module.exports statement?

Any pointers more than welcome.
Node noob - btw

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

留蓝 2024-12-23 19:46:51

您可以设置一个在布局中也可用的全局对象

app.js

app.configure(function(){
  app.set('view options', {pageTitle: ''});
});

app.get('/',function(request, response){
  response.app.settings['view options'].pageTitle = 'Hello World';
  response.render('home');
});

layout.jade

!!!
html
  head
    title= pageTitle
  body!= body

You can set a global object that is also available in your layout

app.js

app.configure(function(){
  app.set('view options', {pageTitle: ''});
});

app.get('/',function(request, response){
  response.app.settings['view options'].pageTitle = 'Hello World';
  response.render('home');
});

layout.jade

!!!
html
  head
    title= pageTitle
  body!= body
_蜘蛛 2024-12-23 19:46:51

您可以在应用的设置部分使用 app.set() 使其可用于每个请求。该应用程序对象可通过路由中的 req.app 获得。

就个人而言,我喜欢在设置和通过 req.app.settings.name 访问它的路由中执行 app.set('name', obj);

You can use app.set() in the setup portion of your app to make it available to each request. The app object is available via req.app in your routes.

Personally, I like to do an app.set('name', obj); in the setup and in the routes I access it via req.app.settings.name.

仄言 2024-12-23 19:46:51

您还可以使用动态助手将数据传递到所有视图。

app.js

// Dynamic Helpers
app.dynamicHelpers({
    appSettings: function(req, res){
        return {name:"My App", version:"0.1"};
    }
});

现在,在您的视图上,您​​可以像这样使用它(我在这个示例中使用了 ejs,但它应该与 jade 或任何其他视图引擎一起使用):

view.ejs

<%= appSettings.name %> 
<%= appSettings.version %> 

希望这有帮助。

You could also use a dynamic helper to pass data to all views.

app.js

// Dynamic Helpers
app.dynamicHelpers({
    appSettings: function(req, res){
        return {name:"My App", version:"0.1"};
    }
});

Now on your views you can use it like this (I used ejs on this example but it should work with jade or any other view engine):

view.ejs

<%= appSettings.name %> 
<%= appSettings.version %> 

Hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文