第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

單節(jié)點.js項目中的monose和多個數(shù)據(jù)庫

單節(jié)點.js項目中的monose和多個數(shù)據(jù)庫

莫回無 2019-07-22 19:31:10
單節(jié)點.js項目中的monose和多個數(shù)據(jù)庫我正在做一個包含子項目的Node.js項目。一個子項目將有一個MongoDB數(shù)據(jù)庫,Monose將用于包裝和查詢db。但問題是Monose不允許在單個monose實例中使用多個數(shù)據(jù)庫,因為模型構建在一個連接上。要使用多個monose實例,Node.js不允許多個模塊實例,因為它在require()..我知道在Node.js中禁用模塊緩存,但我認為這不是一個好的解決方案,因為它只需要貓鼬。我試著用createConnection()和openSet()在貓鼬身上,但這不是解決辦法。我試圖深入復制貓鼬實例(http:/blog.Imaginea.com/深處復制javascript/)將新的貓鼬實例傳遞給子項目,但它會拋出RangeError: Maximum call stack size exceeded.我想知道是否有任何方式使用多個數(shù)據(jù)庫與貓鼬或任何解決辦法這個問題?因為我覺得貓鼬很容易很快。或者其他模塊作為推薦?
查看完整描述

3 回答

?
慕神8447489

TA貢獻1780條經(jīng)驗 獲得超1個贊

您可以做的一件事是,您可能有每個項目的子文件夾。因此,在該子文件夾中安裝monose,并在每個子應用程序中從自己的文件夾中要求()monose。不是從項目根或從全局。因此,一個子項目,一個貓鼬安裝和一個貓鼬實例。

-app_root/--foo_app/---db_access.js---foo_db_connect.js---node_modules/----mongoose/--bar_app/---db_access.js---bar_db_connect.js---node_modules/----mongoose/

在foo_db_connect.js中

var mongoose = require('mongoose');mongoose.connect('mongodb://localhost/foo_db');module.exports = exports = mongoose;

在bar_db_connect.js中

var mongoose = require('mongoose');mongoose.connect('mongodb://localhost/bar_db');module.exports = exports = mongoose;

在db_access.js文件中

var mongoose = require("./foo_db_connect.js"); // bar_db_connect.js for bar app

現(xiàn)在,您可以使用貓鼬訪問多個數(shù)據(jù)庫。


查看完整回答
反對 回復 2019-07-22
?
慕萊塢森

TA貢獻1810條經(jīng)驗 獲得超4個贊

根據(jù)精細手冊createConnection() 能,會,可以用于連接到多個數(shù)據(jù)庫。

但是,您需要為每個連接/數(shù)據(jù)庫創(chuàng)建單獨的模型:

var conn      = mongoose.createConnection('mongodb://localhost/testA');var conn2     = mongoose.createConnection('mongodb://localhost/testB');// stored in 'testA' databasevar ModelA    = conn.model('Model', new mongoose.Schema({
  title : { type : String, default : 'model in testA database' }}));// stored in 'testB' databasevar ModelB    = conn2.model('Model', new mongoose.Schema({
  title : { type : String, default : 'model in testB database' }}));

我很確定您可以在它們之間共享模式,但是您必須檢查以確保。


查看完整回答
反對 回復 2019-07-22
?
慕的地6264312

TA貢獻1817條經(jīng)驗 獲得超6個贊

作為另一種方法,Monose在默認實例上為新實例導出構造函數(shù)。所以像這樣的事情是有可能的。

var Mongoose = require('mongoose').Mongoose;var instance1 = new Mongoose();instance1.connect('foo');var instance2 = new Mongoose();instance2.connect('bar');

當您使用不同的數(shù)據(jù)源時,以及當您希望為每個用戶或請求創(chuàng)建一個單獨的數(shù)據(jù)庫上下文時,這是非常有用的。您需要小心,因為這樣做可以創(chuàng)建大量的連接。確保在不需要實例時調(diào)用disconnect(),并限制每個實例創(chuàng)建的池大小。


查看完整回答
反對 回復 2019-07-22
  • 3 回答
  • 0 關注
  • 799 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號