gpt4 book ai didi

node.js - 在 Express 中使用 app.set 与 app.value

转载 作者:搜寻专家 更新时间:2023-10-31 23:13:13 25 4
gpt4 key购买 nike

在我的 app.js 文件中,我使用 app.set(valName, value) 将几个配置值传递到我的路由。
然后我将应用程序传递到我的路线:app.use('/', require('./routes/index')(app));
然后我可以轻松地使用 app.get(valName) 来检索路由中的值。

我的问题是:使用 app.valName = value; 然后在路由中访问 app.valName 不是更容易吗?
我必须使用 .set.get 吗?或者这会违反什么吗?

最佳答案

Do I have to use the .set and .get? Or will this be violating something?

吗?不,你应该吗?是的!

通过将您的应用程序属性直接设置为 app 对象(例如 app.valName = value;),您可能会覆盖 Express 已初始化供内部使用的属性。

Express's source code可以看出Express 应用程序在它们的 init 函数中创建以下属性:

this._baseRoutes = {};
this.cache = {};
this.settings = {};
this.engines = {};
this.defaultConfiguration();

defaultConfiguration function 之后设置了更多属性被执行。这意味着,如果您想要一个名为 cachesettingsengines 的属性,仅举几例,您将踏上Express 的脚趾,可能会在您的应用程序运行时导致出现问题。

source of app.set可以看出应用程序设置在设置对象中排序,而不是直接在应用程序对象中排序。这是为了防止我刚刚在上面描述的情况:与内部属性名称冲突。

关于node.js - 在 Express 中使用 app.set 与 app.value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23744445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com