位置: 编程技术 - 正文

详解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对象)详解

  • 已经抵扣的进项税额转出怎么申报
  • 企业间无偿划转资产,非关联方经营
  • 不良资产处置措施
  • 分公司非独立核算可以改为独立核算吗
  • 利息税减少
  • 个人名字的话费能做账吗
  • 管理费用贷方有哪些递减
  • 库存完工产品属于什么会计科目,什么类别
  • 餐厅团购券在哪个软件的
  • 一般纳税人进项税额怎么算
  • 建设工程的停工损失包括哪些内容
  • 母公司收购少数股东股权,之前的利润母公司不享有
  • 汽车进口税率表
  • 开具增值税专用发票怎么开
  • 电梯安装简易征收的优点
  • 数字证书费
  • 接受应税劳务的会计分录
  • 成本和费用属于资产吗
  • 做内账收入含税吗
  • 未分配利润清算如何处理
  • mac电脑安装了windows
  • 联想g40开机屏幕一直闪
  • PHP:oci_num_fields()的用法_Oracle函数
  • 要看网怎么找
  • 苹果手机系统升级后电量消耗快
  • PHP:spl_autoload_extensions()的用法_spl函数
  • 纳税人购进农产品取得
  • et.exe进程占用
  • 确认应付职工薪酬是借方还是贷方
  • 退回的企业所得税怎么做账
  • php封装数据库操作
  • 收到承兑汇票怎么签收
  • 【swinUnet官方代码测试自己的数据集(已训练完毕)】
  • phpmailer 使用
  • 酒吧送酒的人叫什么
  • php处理大文件
  • 最新的目标检测算法2020
  • 人力资源公司如何找客户
  • 织梦痣铃表情太到位
  • mongodb reference
  • 不动产登记违建处理办法
  • 商业承兑汇票贴现什么意思
  • 营业税金及附加计入什么科目
  • 小规模纳税人企业所得税优惠政策最新2023
  • 银行手续费没有发票要调增吗
  • 本月还未抄报,请抄报完成之后再申报
  • 房地产卖房需要交契税吗现在
  • 通行费发票增值税申报怎么填写
  • 现在勾选认证是可以下月初认证?
  • 员工预支钱要写什么单据
  • 一般纳税人开具3%专票的条件
  • 酒店没有营业执照开业犯法吗
  • 支付劳务费后缴多少税
  • 哪些情况不属于农户
  • 出售固定资产怎样报增值税申报表
  • 汇算清缴缴纳的所得税怎么做账
  • 开发成本计入现金流量表
  • 停车费发票能报餐饮费吗怎么开
  • 企业多结转的成本跨年怎么冲回?
  • 处置固定资产损失的账务处理
  • win8系统之家官网
  • u盘发光
  • windows10 rs2
  • win8桌面图片位置
  • Win10 build 10240有"启用快速启动"功能吗?如何开启和关闭这个功能?
  • win10重启更新的时候强制关机后会发生啥
  • 所见即所得出自哪里
  • 浅谈自己对教育的理解
  • 绘制多边形工具使用方法
  • javascript运用
  • javascript判断题
  • android xml文件有哪几种布局方式
  • jquery网页跳转
  • jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
  • 安卓开发日记本
  • 吉林省残疾人保障金减免政策
  • 销售车位需要交房产税吗
  • 金三系统企业所得税如何变更所得税缴纳方式?
  • 烟叶税额
  • 资源税的计税依据是含税还是不含税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设