本文介紹了如何通過 Promise 重用 mongodb 連接的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我想重用 MongoDB 連接.我知道 如何在 node.js 中重用 mongodb 連接一個>我想使用 Promises 和 Mongo 驅(qū)動程序 v2 實現(xiàn)同樣的目標(biāo)
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
目前我必須為每個請求連接到數(shù)據(jù)庫,這使得它變慢了.這是我的代碼
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;
});
});
});
這篇關(guān)于如何通過 Promise 重用 mongodb 連接的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!
【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!