javascript - 在 express/node 中使用全局变量

标签 javascript node.js express global-variables scope

试图找到一个解决方案,我找到了 4 个解决方案,但我想知道哪个更好/最佳实践。为什么! :P

<强>1。使用 req.app.get()

// app.js

app.set('settings', { domain: 'http://www.example.org' });

// other file

console.log(req.app.get('settings'));

<强>2。使用 req.app.settings(与上面类似)

// app.js

app.set('settings', { domain: 'http://www.example.org' });

// other file

console.log(req.app.settings.settings);

<强>3。导出应用对象,这样我就可以在没有请求对象的情况下访问 app.get()

// app.js

app.set('settings', { domain: 'http://www.example.org' });
module.exports = app;

// other file

var app = require('../app');
console.log(app.get('settings'));

<强>4。使用全局变量。可能是个坏主意,但是......“设置”不是一个全局性的事情吗? (我可以避免重复使用它,所以我不会遇到范围问题)

// app.js

settings = { domain: 'http://www.example.org' };

// other file

console.log(settings);

最佳答案

简要意见:

<强>1。使用 req.app.get()

在这里,我们为全局属性定义访问器方法(getter/setter)。所以它在语法上是正确的并且很容易理解。

<强>2。使用 req.app.settings(与上面类似)

在这里,我们定义了 setter,但没有使用 getter 来访问值。国际海事组织,不是一个好方法。而且,它也很难理解。

console.log(req.app.settings.settings);

<强>3。导出应用对象,这样我就可以在没有请求对象的情况下访问 app.get()

为什么,您需要导入一个文件,如果您可以访问它的话。如果您高度依赖 app 模块(例如,您需要大量的全局设置),这可能很有用,这通常是构建应用程序时的情况。

<强>4。使用全局变量。可能是个坏主意,但是......“设置”不是一个全局性的事情吗? (我可以避免重复使用它,所以我不会遇到范围问题) 这不是一个好方法,因为在这种情况下代码不可维护。

IMO,优先级类似于:1 > 3 > 2 > 4。

关于javascript - 在 express/node 中使用全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22586542/

相关文章:

javascript - 按宽度(百分比)更改div的背景颜色

javascript - 迭代所有 html 标签,包括 Javascript 中的子标签

javascript - JqueryMobile 页面中的同一页面导航

javascript - 使用 express js 在浏览器中显示 Pdf

javascript - 多个 JSON 数组作为响应 - AJAX 和 PHP

Node.js 未推送所有通知

javascript - pdf2json 给我一个空白的输出 txt 文件?

javascript - 为 REST 端点返回不同的 HTTP 响应代码

javascript - 如何处理客户端 React 应用程序的外部重定向?

Javascript 作用域问题,对象在分配后没有数据