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