Mongoose模塊化實踐

Mongoose爲操作MongoDB數據庫提供了很大的方便,在實際開發過程中,爲了保證可擴展與可維護性,通常會將Mongoose進行模塊化,下面記錄一個模塊化的實例,便於在以後的項目中複用。

1. 定義db.js,連接數據庫

var mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1:27017/test', { useNewUrlParser: true }, function (err) {
    if (err) {
        console.log(err);
        return;
    }
    console.log('數據庫連接成功')
});

module.exports = mongoose

連接參數說明:

第一個參數爲數據庫的地址,如果設置了密碼的話,記得加上用戶名和密碼,格式如下:

mongodb://test_admin:[email protected]:27017/test

第二個參數 useNewUrlParser 屬性會在url裏識別驗證用戶所需的數據庫,4.x以上的版本需要加,否則會有警告產生。

第三個參數 爲回調函數用來確認數據庫是否連接成功。

2. 引入定義的db.js文件,生成schema,建立模型並導出,文件名爲user.js

var mongoose=require('./db.js');

var UserSchema=mongoose.Schema({
    name:String,
    age:Number,
    // 指定默認參數
    status:{
        type:Number,
        default:1   
    }
})
module.exports=mongoose.model('User',UserSchema,'user');

3. 在需要操作數據的頁面引入定義的user.js,執行相關操作。

var UserModel=require('./model/user.js');

var user=new UserModel({
    name:"李四",
    age:40
})
// 執行新增操作
user.save(function(err){
    if(err){
        console.log(err);
        return;
    }
    // 獲取user表的數據
    UserModel.find({},function(err,docs){
        if(err){
            console.log(err);
            return;
        }
        console.log(docs);
    })
})

大家可能發現在定義schema時,引入了db.js文件,即連接了一次數據庫,那麼調用多個schema時,是否會多次連接數據庫了,其實在mongoose的底層已經做了單例模式的處理,也就是說只會在第一次連接時比較耗時,後續的連接執行都會很快。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章