栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Node.js连接到MongoDB的最佳方法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Node.js连接到MongoDB的最佳方法

您可以使用 全局变量 来保存连接(例如

db
),例如:

var db = null // global variable to hold the connectionMongoClient.connect('mongodb://localhost:27017/', function(err, client) {    if(err) { console.error(err) }    db = client.db('test') // once connected, assign the connection to the global variable})app.get('/', function(req, res) {    db.collection('test').find({}).toArray(function(err, docs) {        if(err) { console.error(err) }        res.send(JSON.stringify(docs))    })})

或者,如果您愿意,也可以使用 Promise对象 ,该 对象

MongoClient
没有回调参数的情况下被调用返回:

var conn = MongoClient.connect('mongodb://localhost:27017/') // returns a Promiseapp.get('/', function(req, res) {    conn.then(client=> client.db('test').collection('test').find({}).toArray(function(err, docs) {        if(err) { console.error(err) }        res.send(JSON.stringify(docs))    }))})

请注意,我在第二个示例中使用了ES6粗箭头功能定义。

您绝对不应该

MongoClient
每次都打电话。使用全局变量或Promises允许MongoDB
node.js驱动程序创建连接池,该连接池至少可以实现两个优点:

  • 连接在池中被重用,因此在应用程序的生命周期内没有多个昂贵的设置/拆卸过程。您只需连接一次,然后让驾驶员为您照顾其余的一切。
  • 您可以通过限制连接池的大小来控制应用程序与数据库的连接量。

编辑2018-08-24

MongoClient.connect()
node.js驱动程序3.0及更高版本中的方法返回客户端对象而不是数据库对象。修改了以上示例,以使其与最新的node.js驱动程序版本保持最新。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/436514.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号