使用app.get()和app.set()与Express中的变量声明有什么区别?

时间:2017-11-30 14:56:06

标签: javascript node.js express

如果我们想要的只是访问变量,我不明白使用app.set和app.get的需要是什么。

app.set('title','My title');

var title = app.get('title);

我可以做的是直接将我的标题设置为标题变量。

var title = 'My title';

以下是我在stack overflow

上提问之前经历过的问题

2 个答案:

答案 0 :(得分:1)

app.set()和app.get()是一种在node.js中管理全局变量的方法。变量在文件中具有局部范围,如果要从另一个变量访问它们,则需要从原始文件中导出它们并将其导入到将使用其值的变量中。与app.set()和app.get()相反,您可以导出应用程序实例并使用与其关联的值。

答案 1 :(得分:1)

您可能觉得在app对象上设置app.set('title', 'my website')等属性可能不会很有用(除非出于某种原因,您在代码中的其他位置引用了此属性,或者您在& #39;已安装,需要设置此属性。

但是,您必须记住,设置其他特定属性名称的功能将超出您的目的,并且可能会更改应用程序的行为方式。例如,设置app.set('trust proxy', true)将通过提供请求的req.ip标头的值来调整x-forwared-for属性的填充方式(如果您的应用程序位于反向代理之后,这将非常有用) CloudFlare等)。

可以在此处找到每个ExpressJS文档的这些特殊属性的列表: http://expressjs.com/en/api.html#app.set