位置: 编程技术 - 正文

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

  • 房地产企业的会计核算
  • 开承兑汇票的条件 费用
  • u8已记账怎么修改年初余额
  • 办理契税需要的户口本复印件可以吗
  • 平销返利企业所得税处理
  • 汇总记账凭证长什么样
  • 新房购置税怎么算2022
  • 冲减应收帐款分录
  • 向公司一般户的银行借款怎么做账?
  • 用盈余公积弥补亏损会影响所有者权益吗
  • 建筑行业预收账款
  • 关联企业借款利息扣除
  • 购进旅客运输服务抵扣会计分录
  • 学校应该缴纳的税
  • 管理费用研发费用科目设置
  • 工资条上税基调整是啥意思
  • 两公司之间内部转账的会计处理
  • 网店提现要多久能到账
  • 报销差旅费涉及的会计科目
  • 小规模减免的增值税汇算清缴
  • sadge什么意思
  • 增值税一般纳税人资格登记表
  • 公司和个人分别交税一部分吗
  • PHP:session_unset()的用法_Session函数
  • php lee
  • 冲销以前年度多计提的工资资产负债表怎么平
  • 查补的增值税能抵留抵吗
  • 报错代码678什么意思
  • 深度学习和日常代码中遇到的报错汇总及解决方案,持续更新中。。。。
  • 绿萝怎么修剪才能更旺盛
  • spring 异常
  • Win11 Build 23430 预览版发布(附更新修复内容汇总)
  • 销售费用占销售额比例怎么算
  • phpcms怎么用
  • 个人工程款收入算是工资流水吗
  • python代码用什么运行
  • 个人所得税0申报什么意思
  • 工商年检截止日期
  • 关于固定资产的说法
  • 企业捐赠自产产品的所得税处理
  • 一般纳税人跨年冲红报年度所得税怎么做
  • 一般纳税人季度所得税怎么计算
  • 房租已付未收发票可以待摊费用吗
  • 可抵扣暂时性差异产生的情况有
  • 项目过路费应该挂什么科目
  • 建筑服务的税率是
  • 公司新产品研发上市的意义和价值
  • 职工福利费如何计算
  • 虚开发票如何界定?
  • 公司如何注销营业执照
  • mysql 基本操作
  • 非常详细的魔方公式图解
  • linux下mysql的root密码忘记的解决方法
  • 64位Vista、Windows7系统IIS连接数据库故障完美解决
  • linux 对比文件
  • winxp安卓
  • linux中的文件
  • linux修改文件权限
  • win8怎么启动资源管理器
  • win10系统日历设置
  • 修改win7
  • opengl编程宝典
  • JavaScript:Array类型全面解析
  • perl中sub
  • about ContentProvider
  • app启动页动画效果
  • windows下安装nas
  • 基于zepto的移动端轻量级日期插件--date_picker
  • Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
  • jquery ui和jquery easy ui
  • 如何用python写自动化脚本
  • 安卓多点触屏在哪里设置
  • jquery实例
  • 辽宁省国家税务局电子税务局官网
  • 国家税务局四川省电子税务局
  • 苏州税务ukey客服电话
  • 企业分期收款销售商品,即商品已经交付
  • 教育培训机构都交哪些税
  • 如何查询甘肃省清产核资系统扶贫项目资产金额
  • 云南新农合怎么报销的
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设