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的底層已經做了單例模式的處理,也就是說隻會在第一次連接配接時比較耗時,後續的連接配接執行都會很快。