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



我不明白使用app.set和app.的需要。

app.set('title','My title');
var title = app.get('title);

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

var title = 'My title';

这是我在堆栈溢出上询问的问题

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

您的正确意义是您可能发现在应用程序对象上设置诸如 app.set('title', 'my website')之类的属性(除非出于某些原因,否则您在代码中的其他地方将此属性引用您已安装的软件包期望设置此属性)。

您必须牢记,但是设置其他特定属性名称将比符合眼睛的事物更多,并且可能会改变您的应用程序的行为方式。例如,设置app.set('trust proxy', true)将通过提供请求的x-forwared-for标头的值来调整req.ip属性的填充方式(如果您的应用程序在CloudFlare等反向proxy之后,这将很有用)。

)。

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

最新更新