位置: 编程技术 - 正文

详解Node.js模块间共享数据库连接的方法(关于node.js中的模块化规范)

编辑:rootadmin

推荐整理分享详解Node.js模块间共享数据库连接的方法(关于node.js中的模块化规范),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node.js中模块包括,node.js中模块包括,nodejs官方模块,node.js 模块,node.js node_modules,node.js module,nodejs中的模块以及作用,node.js node_modules,内容如对您有帮助,希望把文章链接给更多的朋友!

这个标题本身就是一个命题,因为使用默认方式的情况下,一个 Node.js 应用里的各个模块都是共享的同一个数据库连接。但是如果姿势不对,可能会很丑陋,甚至可能会出错。

你可以忽略下面这部分,直接切入正题。

背景最近在做专业课程设计,题目是“机票预订管理系统”。需求比较简单,就试着拿最近在学的 Node.js 来做了。本来还在调研用何种 Node.js 框架比较合适,看了几个框架之后发现这是杀鸡用牛刀,有看文档查资料的时间还不如直接动手写了。最后写完我会把代码放到 Github 上,欢迎大家批评指正。

数据库方面,以为我比较熟悉和喜欢 JSON (SQL 没学好就承认呗-_-#),所以就选择了 MongoDB。Node + Mongo 是近几年越来越热门的后端组合,网上有很多关于如何一起使用的资料。但为了节约时间(课程设计也就一个多星期),把精力多集中在系统和逻辑上,我用了 Mongoose 这个专门用于 MongoDB 数据建模的 Node.js 扩展,用它来大大减少操作数据库的代码。

详解Node.js模块间共享数据库连接的方法(关于node.js中的模块化规范)

正题我建立了两个数据模型(Model),一个是用户(User),一个是航班(Flight),分别封装到了 user.js, flight.js 这两个模块(Module)里面。Model 专门负责和数据库交互,用户和航班这两个模块都需要连接数据库,一开始我的代码是这样的:

且不说这种写法一点都不 DRY,这种方式本身就是错误的。当我运行 index.js 时,会出现如下错误。

错误是:尝试打开未关闭的连接。

所以我们应该在一个地方连接一次数据库,然后其他需要连接数据库的模块通过这个模块来和数据库交互。就好像插线板,义无反顾地吼叫道:“墙上就一个插座,你们不要抢了!放着我来!你们。。。就可以了!”

具体方案我们把连接数据库的动作放到一个模块里,并且把连接暴露给整个应用中的其他模块,然后其他需要连接数据库的模块引用这个连接即可。

这就是让一个 Node.js 应用的多个模块共享数据库连接的一种方法。是我在 StackOverflow 上面看到的。如果你有更好的方法,欢迎在评论中分享给大家!

Javascript之BOM(window对象)详解 ECMAScript是JavaScript的核心,但在web使用JavaScript,那么BOM(浏览器对象模型)才是真正的核心。BOM的核心对象是window,它表示浏览器的一个实例。在浏览器中

轻松掌握JavaScript中的Math object数学对象 对于内置的Math数学常项和函数也有一些属性和方法。比方说,Math对象的PI属性会有属性值pi(3....),你可以像这样调用它:Math.PI同理,标准数学函数也

详解JavaScript中this关键字的用法 this是函数内部的一个特殊对象,this引用的是函数据以执行的环境对象(关于环境对象我们会在文章最后作补充说明),在调用函数前this的值并不确定,不

标签: 关于node.js中的模块化规范

本文链接地址:https://www.jiuchutong.com/biancheng/370073.html 转载请保留说明!

上一篇:JavaScript程序中的流程控制语句用法总结(请问在javascript程序中)

下一篇:Javascript之BOM(window对象)详解

  • 待解预算收入税务局退税如何做账
  • 股票印花税怎么交
  • 房地产业如何确认收入
  • 个税申报错了并且已经缴款怎么修改
  • 本年收益的会计处理
  • 个人所得税离职补偿金优惠政策
  • 没有报关单货物违法吗
  • 以前年度损益调整借贷方向
  • 个人从海外买东西自用要交税吗
  • 合作社 注销
  • 由财政拨钱还银行借款怎么做分录?
  • etc发票一直不出来
  • 中国增值税发展史
  • 股权激励个人所得税计算器
  • 税前不得扣除的项目
  • 固定资产停止使用还计提折旧吗
  • 盈余公积为0说明什么问题
  • 工商年报纳税总额是应缴还是实缴
  • 景区门票 报销
  • 外地职工医保怎么报销
  • 利息支出怎么结转
  • 中级会计考试考后审核需要什么资料
  • 鸿蒙 功能
  • 计提房租费
  • 利用网速测试器测试
  • 有什么好方法可以让小孩子少吃糖
  • 国家规定免税饲料具体哪些产品
  • 认缴没有实缴怎么做账
  • 投资性房地产成本法账务处理
  • 结转生产成本的会计科目
  • vue后端框架推荐
  • vue引入文件路径@的意思
  • 产成品核算的内容
  • 小规模纳税人购入货物收到增值税专用发票
  • 固定资产无形资产计提折旧是当月还是次月
  • 高新企业研发项目是否需要立项审批?
  • 信用证支付方式,银行处理单据时主要关注( )
  • 企业借款生产存货发生的借款费用均应予以资本化
  • 阴影等级是什么
  • mongodb数据库查询用多少存储
  • 支付宝支付凭证在哪里查
  • 支付水费委托收款
  • 车辆购置税的计税价格为不含增值税的全部价款
  • 月末在产品生产成本会计分录
  • 什么叫应纳税额六年级下册
  • 原始凭证的审核内容
  • 增值税专用发票抵扣期限
  • 小规模纳税人购入固定资产怎么做账
  • 存货报废如何做账
  • 免征增值税账务处理办法
  • 美元利息结汇时结汇项目是什么
  • 现金流量表中支付的各项税费包括
  • 负债表预付账款怎么填
  • 公司场地租赁交什么税
  • 没有工会的企业收到返还的工会经费派什么用场
  • 对方发票丢失怎么申报丢失
  • 注册资本越多越好吗
  • casewhen嵌套查询
  • windows 10的安装
  • solaris重启服务器命令
  • safari 快捷键
  • 电脑待机状态下载会继续吗
  • win10 20h2怎么装
  • unity发布exe
  • opengl纹理叠加
  • 简单谈谈你的入党动机
  • 分离与继承的思想是什么
  • jquery生成div
  • nodejs内置的包管理器
  • Android AsyncTaskLoader需要注意的问题
  • androidui布局
  • node js连接数据库
  • linux的sed -i
  • js延时加载的方法
  • Python注释详解
  • jQuery Ajax 全局调用封装实例代码详解
  • 供暖配套费
  • 稳岗补贴是否需在企业所得税汇算时调增
  • 怎么屏蔽微信群消息,但是不退出此群
  • 建筑增值税税率历次调整
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设