溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

nodejs 的一個疑問

發(fā)布時間:2020-03-24 04:28:06 來源:網(wǎng)絡 閱讀:352 作者:wangyuelucky 欄目:MongoDB數(shù)據(jù)庫


nodeJs連接mongodb數(shù)據(jù)庫,根據(jù)服務器的不同生成相應的URL,所以寫了個方法:

var createURL = function(){
    var mongourl = "";
    if(process.env.VCAP_SERVICES){
       mongourl = .....;
    }else{
       mongourl = ...;
    }
    console.log("config database url...");
    return mongourl;
}
exports.url = createURL();

在model層連接數(shù)據(jù)庫,只需直接調(diào)用改方法即可

首先添加引用:

var urlFactory = require('./dbFactory');

然后,直接調(diào)用:

require('mongodb').connect(urlFactory.url, function(err, conn){
    //讀取 users 集合
    conn.collection('users', function (err, collection) {
    // do something
    });
  });


這樣,所有需要連接數(shù)據(jù)庫的地方,都需要調(diào)用urlFactory.url,也就是createURL方法,肯定是低效的。所以,我本來打算寫個緩存之類的,把url暫存起來,省得每次都要重新判斷、重新生成。


不過,莫名的問題出現(xiàn)了。無論怎樣運行系統(tǒng),console.log("config database url...");只輸出一次?。?/p>


這是為什么呢?NodeJs的機制?還是exports的原因?個人猜測是require('mongodb').connect(urlFactory.url, fn);這種鏈接方式,采用類似session的方式。


先記一筆在這里,以后研究。。。


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI