详解Node.js模块间共享数据库连接的方法.pdf

详解Node.js模块间共享数据库连接的方法.pdf

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
我们可以写一个统一的数据库连接模块来供本地 Node 环境下各模块间共享使用 ,接下 来就来详解 Node.js 模块间共享数据库连接的方法 这个标题本身就是一个命题,因为使用默认方式的情况下,一个 Node.js 应用里的各 个模块都是共享的同一个数据库连接。 但是如果姿势不对, 可能会很丑陋, 甚至可能会出错。 你可以忽略下面这部分,直接切入正题。 背景 最近在做专业课程设计,题目是“机票预订管理系统” 。需求比较简单,就试着拿最近 在学的 Node.js 来做了。本来还在调研用何种 Node.js 框架比较合适,看了几个框架之后 发现这是杀鸡用牛刀, 有看文档查资料的时间还不如直接动手写了。 最后写完我会把代码放 到 Github 上,欢迎大家批评指正。 数据库方面, 以为我比较熟悉和喜欢 JSON (SQL 没学好就承认呗 -_-# ),所以就选择 了 MongoDB 。Node + Mongo 是近几年越来越热门的后端组合,网上有很多关于如何一起 使用的资料。 但为了节约时间 (课程设计也就一个多星期) ,把精力多集中在系统和逻辑上, 我用了 Mongoose 这个专门用于 MongoDB 数据建模的 Node.js 扩展,用它来大大减少操 作数据库的代码。 正题 我建立了两个数据模型( Model ),一个是用户( User),一个是航班( Flight ),分别封 装到了 user.js, flight.js 这两个模块( Module )里面。 Model 专门负责和数据库交互,用户 和航班这两个模块都需要连接数据库,一开始我的代码是这样的: // user.js // require mongoose.js 引用 mongoose.js var M = require('mongoose'); // connect to database 连接数据库 M.connect('mongodb://localhost/test'); // ... some other code ... // flight.js // require mongoose.js 引用 mongoose.js var M = require('mongoose'); // connect to database 连接数据库 M.connect('mongodb://localhost/test'); // ... some other code ... // models.js var user = require('./user'),   flight = require('./flight'); // index.js var Models = require('./models'); 且不说这种写法一点都不 DRY ,这种方式本身就是错误的。当我运行 index.js 时,会 出现如下错误。 > node index.js > Connection error: { [Error: Trying to open unclosed connection.] state: 2 } 错误是:尝试打开未关闭的连接。 所以我们应该在一个地方连接一次数据库, 然后其他需要连接数据库的模块通过这个模 块来和数据库交互。 就好像插线板, 义无反顾地吼叫道: “墙上就一个插

文档评论(0)

wyl1921 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档