我在哪里创建或修改视图的全局变量(ejs)

时间:2014-04-25 18:10:45

标签: node.js express sails.js ejs

我需要修改变量&#34; <%= title %>&#34;,但我不知道他们在哪里创建变量或我可以在哪里更改变量。

我想知道在视图中可以找到其他全局变量,例如变量&lt;%= session%&gt;我没有发送视频,但由于某种原因已经存在。 in&#34;表达&#34;它触动了我做了类似下面的事情:

&#34; res.render('session/new', {title: "Log in", session: req.session});&#34;

所以我想知道他们在哪里创建&#34;会话&#34;变量,因为我不喜欢去那里不知道某些东西XD

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

我将尝试回答一些关于 Sails.js 中的本地/全局变量的问题。

本地变量

Sails.js 构建于 ExpressJS 之上,并使用相同技术的mutch将数据发送到视图。例如,要将局部变量发送到上下文中的视图:

在您的控制器中:

newSession: function(req, res, next) {
    res.view('session/new', {
        title: "Log in", 
        session: req.session
    });
});

全局变量

Sails.js 已经有了一些全局变量。 title可能是其中之一。例如,sails是一个全局变量。对于该变量,您可以附加自己的自定义变量。要做到这一点:

  • config 文件夹中创建新文件。
  • 将其命名为您喜欢的名称,并使用 module.exports 约定。

config/myGlobals.js文件中:

module.exports.myGlobalVariables = {
    globalOne: "This is a string",
    globalTwo: function(){ return "myGlobal"; }
}

现在,您可以使用以下命令在所有控制器/视图中访问这些变量:

sails.config.myGlobalVariables.globalOne; //returns: This is a string
sails.config.myGlobalVariables.globalTwo; //returns: myGlobal