Node/Express 4.0 中可以声明全局变量吗

2024-05-26

我有多个需要访问数据库的路线,对于开发我使用本地数据库,显然生产我使用托管数据库

唯一的问题是每次我去推送版本时我都必须手动更改数据库链接

e.g.

var mongodb = require('mongojs').connect('urlhere', ['Collection']);

如果我可以在中声明一个变量,那就太好了app.js like

app.set('mongoDBAddress', 'urlhere');

然后在每个文件中执行类似的操作var mongodb = require('mongojs').connect(app.get('mongoDBAddress'), ['Collection']);

有谁知道这是否可以实现,我已经用谷歌搜索了大约一个小时,并试图包含不同的东西,但我没有运气。谢谢。


来自docs http://nodejs.org/api/globals.html#globals_global:

在浏览器中,顶级作用域是全局作用域。这意味着 如果您在全局范围内,则在浏览器中var something将定义一个 全局变量。在 Node 中这是不同的。顶级范围不是 全球范围;var somethingNode 模块内部将是本地到 那个模块.

你必须有一点不同的想法。不要创建全局对象,而是创建模块,以便它们采用app举例来说,例如:

// add.js
module.exports = function(app) { // requires an `app`
  return function add(x, y) { // the actual function to export
    app.log(x + y) // use dependency
  }
}

// index.js
var app = {log: console.log.bind(console)}
var add = require('./add.js')(app) // pass `app` as a dependency

add(1, 2)
//^ will log `3` to the console

这是 Express 和其他库中的约定。app位于您的主文件中(即index.js),并且您需要的模块有一个app范围。

您可以添加一个全局变量GLOBAL,看这个这个问题 https://stackoverflow.com/questions/5447771/node-js-global-variables,尽管这可能被认为是不好的做法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node/Express 4.0 中可以声明全局变量吗 的相关文章

  • 是否存在 IsCallable 为 false 但 IsConstructor 为 true 的 JS 对象?

    ECMAScript 规范函数可调用 https www ecma international org ecma 262 6 0 index html sec iscallable当且仅当其参数具有 Call 内部方法时返回 true 它在
  • 以编程方式填写reactjs表单

    我正在编写一个用户脚本 但无法填写由reactjs制作的表单 我的代码 document querySelector id username value email protected cdn cgi l email protection
  • 如何在react-bootstrap中禁用表单提交的

    在下面的代码片段中 我有许多文本类型的输入表单 如果用户点击 我似乎会得到相同的合成事件 就像他们按下提交按钮一样 我想忽略作为表单提交 只允许一个人按下 提交 按钮 我删除了一些表单组以减少示例 在所有情况下 按钮或 ENTER 键 e
  • 带有淘汰赛js的隐形recaptcha

    我正在完成隐形验证码 但我在实现它时遇到问题 谷歌开发人员页面中的代码显示它应该是这样的
  • 使用 dc.js 按条形值对条形图中的条形进行排序(排序)

    如何通过维度的计算值而不是维度本身的名称对 dc js 示例中的 x 轴 维度 进行排序 例如 请考虑序数条形图的 dc js 示例 https github com dc js dc js blob master web examples
  • Snap.svg - 停止在可悬停元素的子元素上重新触发悬停事件

    对于一个项目 我使用的 SVG 形状由背景多边形和背景多边形上方的一些文本 我已将其转换为路径 组成 我正在使用 Snap svg 为我的形状设置动画 当我将鼠标悬停在多边形上时 形状应该缩放到特定尺寸 包括其中的所有内容 鼠标移开时 形状
  • 如何纠正流警告:解构(缺少注释)

    我正在编写一个小型 React Native 应用程序 并且正在尝试使用 Flow 但我无法在任何地方真正获得有关它的正确教程 我不断收到错误 destructuring Missing annotation 有关 station 这段代码
  • 调整图像大小并将画布旋转 90 度

    这里有很多关于在 js 上使用画布旋转图像的主题 我阅读了其中的大部分内容 但无法找到解决我的问题的方法 我正在接收任何分辨率的图像 来自上传组件 我将其大小调整为 1024x768 如下所示 var canvas document cre
  • 尝试将数据存储在点击器网站中

    我正在尝试存储一个名为的变量score无论何时刷新 您都会一次又一次地使用它 我不明白的是它的代码是什么 我尝试了一些方法 但似乎都不起作用 这是我的答题器网站 但是当我尝试使用 JavaScript 来存储它时 它不起作用window o
  • 在 HTML5 画布中,如何用我选择的背景遮盖图像?

    我试图用画布来实现这一点 globalCompositeOperation 但没有运气 所以我在这里问 这里有类似的问题 但我没有在其中找到我的案例 我的画布区域中有图层 从下到上的绘制顺序 画布底座填充纯白色 fff 用fillRect
  • 将 UMD Javascript 模块导入浏览器

    你好 我正在对 RxJS 进行一些研究 我可以通过在浏览器中引用它来使用该库 如下所示 它使用全局对象命名空间变量 Rx 导入 我可以制作可观察的东西并做所有有趣的事情 当我将 src 更改为指向最新的 UMD 文件时 一切都会崩溃 如下所
  • Vuejs 2:去抖动不适用于手表选项

    当我在 VueJs 中反跳此函数时 如果我提供毫秒数作为原语 它就可以正常工作 但是 如果我将其提供为对 prop 的引用 它会忽略它 这是道具的缩写版本 props debounce type Number default 500 这是不
  • 如何使用 crypto-js 解密 AES ECB

    我正在尝试将加密数据从 flash 客户端 发送到服务器端的 javascript 在 asp 中作为 jscript 运行 有几个 javascript Aes 库 但它们实际上没有文档记录 我正在尝试使用 crypto js 但无法让代
  • 如何隐藏/禁用 Highcharts.js 中的图例框?

    我想问是否可以使用 HighCharts js 库隐藏图表中的所有图例框 var chart object chart renderTo render to type graph type colors graph colors title
  • 带参数的事件监听器

    我想将参数传递给 JavaScript 中的事件侦听器 我已经找到了解决方案 但我无法理解它们为什么或如何工作以及为什么其他解决方案不起作用 我有 C C 背景 但是 Javascript 函数的执行有很大不同 您能否帮助我理解以下示例如何
  • 用于交互式图形绘制的轻量级 JavaScript 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有兴趣了解用于绘制交互式图表的最轻量级 javascript 库 我掌握的数据主要是与海洋研究相关的科学数据 我知道一些 jquery
  • JavaScript 相对路径

    在第一个 html 文件中 我使用了一个变量类别链接 var categoryLinks Career prospects http localhost Landa DirectManagers 511 HelenaChechik Dim0
  • 使用 MongoDB 和 Nodejs 插入和查询日期

    我需要一些帮助在 mongodb 和 nodejs 中按日期查找记录 我将日期添加到抓取脚本中的 json 对象 如下所示 jsonObj last updated new Date 该对象被插入到 mongodb 中 我可以看到如下 la
  • Jquery - 选择选项后如何获取选项的特定数据类型?

    我将直接跳到标记 然后解释我想要做什么 HTML 选择选项
  • Vue.js[vuex] 如何从突变中调度?

    我有一个要应用于 json 对象的过滤器列表 我的突变看起来像这样 const mutations setStars state payload state stars payload this dispatch filter setRev

随机推荐

  • 安排复杂功能更新

    我在 Apple Watch 上有一个自定义复杂功能 我试图每小时更新一次 它应该每小时 ping 一个 API 端点 如果数据自上次检查以来发生了变化 则应更新复杂性 这是我目前所拥有的 似乎只有一次的效果 当它起作用时 它确实会 pin
  • Mojolicious:我应该使用一个还是多个 websocket?

    我正在自学 Mojolicious 和 websockets 到目前为止 我已经有了一个网页 它显示数据库中的行 并具有用于添加 删除和更新行以及选择用于排序的列的按钮 目前 它在每个按钮的 javascript onclick 处理程序中
  • 运行SpringBootTest时访问H2控制台

    如果我正在运行测试 SpringBootTest有什么办法可以访问H2控制台吗 我有一个访问 H2 数据库 成功 的测试 但如果我想自己检查数据库 我该怎么做 我首先运行测试webEnvironment DEFINED PORT and h
  • 声明与定义

    在 C 中 声明与定义有何不同 即 类声明与类定义 变量声明与定义 方法参数声明与定义 在 C 中 这是相当明显的 但在 C 中 从 ECMA 标准和 MSDN 可以看出 一切都是声明 并且在使用定义一词的地方 它与声明具有相同的含义 在使
  • 什么是 boost::asio::ssl::context::load_verify_file 以及如何使用它?

    有一个谨慎的小量 boost asio ssl http en wikipedia org wiki Transport Layer Security小型 C 在线教育代码库 甚至更少boost asio ssl context load
  • Java FX 8 - Tableview 显示对象内的对象

    我正在尝试加载一个表格视图来自对象列表的组件 在我的例子中是客户端对象 一个客户端对象包含一个Address对象和反之亦然 这Client和Address对象定义如下 public class Client private String f
  • 如何在 SequelizeJS 中创建模型时设置额外属性?

    我的模型 Recipe id name Ingredient id name Recipe Ingredient recipeId ingredientId quantity 我的协会 Recipe belongsToMany Ingred
  • 不使用 Django 的 Python 数据库(适用于 Heroku)

    令我惊讶的是 我没有发现其他地方提出过这个问题 简而言之 我正在编写一个应用程序 计划部署到云 可能使用 Heroku 它将执行各种网络抓取和数据收集 它将位于云中的原因是 我可以将其设置为每天自行运行 并将数据提取到数据库 而无需我的计算
  • 提交表单后如何关闭浏览器选项卡?

  • 如何在 Haskell 中使 CAF 不是 CAF?

    如何将常量应用形式变成 而不是常量应用形式 以阻止它在程序的生命周期中保留 我尝试过这种方法 Dummy parameter to avoid creating a CAF twoTrues gt Bool twoTrues map Tru
  • FCM 通知在 iOS 应用程序中不起作用

    我正在我的应用程序中集成 FCM 通知和云消息传递 我已按照 Firebase 文档中提到的完全相同的步骤进行操作 即使我已经尝试过 FCM 给出的示例代码 它只是发出一些警告
  • 你能通过傅里叶变换计算原始信号的幅度/功率吗?

    使用 scipy fftpack fft 对一些样本进行离散傅立叶变换并绘制这些样本的幅度后 我注意到它不等于原始信号的幅度 两者之间有关系吗 有没有一种方法可以根据傅立叶系数计算原始信号的幅度而不需要反转变换 这是振幅为 7 0 且 ff
  • 让 div 填充空间

    我想在内容 div 的一侧放置两列 我遇到的问题是我希望柱子由 3 个部分组成 顶部和底部应该有固定的高度 但中间的高度会根据内容的高度进行调整 查看一列示例
  • 为什么我无法通过“docker-compose run web”命令运行 django 迁移?

    所以我通过 docker compose 部署 django postgres 和 nginx 容器 但我遇到了一个我似乎无法解决的问题 为了解决 Django 应用程序中的以下错误 我知道我只需要运行 Django 迁移 docker p
  • AngularJS:ng-model 未绑定到 ng-checked 复选框

    我在问这个问题之前提到过这一点 AngularJs 不将 ng checked 与 ng model 绑定 https stackoverflow com questions 14226439 angularjs doesnt bind n
  • 向 ASP.NET WebApi 2.2 添加身份验证

    我创建了一个 WebApi 2 2 项目 来自一个空的新 ASP NET 项目 来证明一些实现概念 现在我想向其中添加身份验证 我注意到在新的 WebApi 应用程序上添加身份验证的唯一方法是使用模板之一 在我的例子中是 VS 2013 是
  • 如何在Java中从控制台读取时设置默认输入?

    如何将任何单词 文本 添加到输入流 我想读取控制台输入并预填充该行 以便用户不必从头开始输入单词 String ANY WORD TEXT System out print Enter some magic here String valu
  • ValueError:以 10 为基数的 int() 的文字无效:

    当我尝试将一些数据插入 django 模型时 我收到此值错误 我的Python脚本是 from task employeeDetails models import EmployeeDetails def dumpdata userName
  • Netbeans 和 Maven:不同的编译行为

    我正在使用 Netbeans 和 Maven 项目 在某些情况下 Netbeans 显示编译失败 红色气球 但 Maven 编译所有内容都没有任何问题 造成这种差异的原因可能是什么 我已经检查过两者都使用相同的 JDK 版本 一个可能的原因
  • Node/Express 4.0 中可以声明全局变量吗

    我有多个需要访问数据库的路线 对于开发我使用本地数据库 显然生产我使用托管数据库 唯一的问题是每次我去推送版本时我都必须手动更改数据库链接 e g var mongodb require mongojs connect urlhere Co