How to reuse mongodb connection through Promise(如何通过 Promise 重用 mongodb 连接)
问题描述
我想重用 MongoDB 连接.我知道 如何在 node.js 中重用 mongodb 连接一个>我想使用 Promises 和 Mongo 驱动程序 v2 实现同样的目标
I want to reuse MongoDB connection. I 'am aware of How to reuse mongodb connection in node.js I want to acheive the same using Promises and Mongo driver v2
目前我必须为每个请求连接到数据库,这使得它变慢了.这是我的代码
Currently I have to connect to db for every request which makes it slow. This is my code
"use strict"
var app = require('./utils/express')();
var mongodb = require('mongodb');
var MongoClient = mongodb.MongoClient;
//Actually I 'am connecting to MongoLab
var url = 'mongodb://localhost/my-mongo';
app.set('port', (process.env.PORT || 5000));
app.listen(app.get('port'), function () {
console.log('ParkMe app is running on port', app.get('port'));
});
app.get('/location/create', function(req,res,next){
MongoClient.connect(url).then(function(db) {
return db.collection('parkme_parkingLots').find({}).toArray().then(function (docs) {
return docs;
});
});
});
我想做这样的事情:
"use strict"
var app = require('./utils/express')();
var mongodb = require('mongodb');
var MongoClient = mongodb.MongoClient;
var url = 'mongodb://nidhind:1234@ds051635.mongolab.com:51635/my-mongo';
var db = MongoClient.connect(url).then(function(db) {
return db;
});
app.set('port', (process.env.PORT || 5000));
app.listen(app.get('port'), function () {
console.log('ParkMe app is running on port', app.get('port'));
});
app.get('/location/create', function(req,res,next){
db.collection('parkme_parkingLots').find({}).toArray().then(function (docs) {
return docs;
});
});
推荐答案
你快到了,你的代码只需要做几处更改:
You're almost there, there are only a couple of changes in your code to be made:
"use strict"
var app = require('./utils/express')();
var mongodb = require('mongodb');
var MongoClient = mongodb.MongoClient;
var url = 'mongodb://nidhind:1234@ds051635.mongolab.com:51635/my-mongo';
// no need to call then() yet
var connection = MongoClient.connect(url);
app.set('port', (process.env.PORT || 5000));
app.listen(app.get('port'), function() {
console.log('ParkMe app is running on port', app.get('port'));
});
app.get('/location/create', function(req, res, next) {
// the connection is opened once, use it at will
connection.then(function(db) {
db.collection('parkme_parkingLots').find({}).toArray().then(function(docs) {
return docs;
});
});
});
这篇关于如何通过 Promise 重用 mongodb 连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何通过 Promise 重用 mongodb 连接
基础教程推荐
- 如何添加到目前为止的天数? 2022-01-01
- Bootstrap 模态出现在背景下 2022-01-01
- 即使用户允许,Gmail 也会隐藏外部电子邮件图片 2022-01-01
- npm start 错误与 create-react-app 2022-01-01
- 在 contenteditable 中精确拖放 2022-01-01
- Fabric JS绘制具有活动形状的多边形 2022-01-01
- fetch 是否支持原生多文件上传? 2022-01-01
- 原生拖动事件后如何获取 mouseup 事件? 2022-01-01
- Bokeh Div文本对齐 2022-01-01
- 检查 HTML5 拖放文件类型 2022-01-01
