第一步:在我们的项目中下载安装MongoDB数据库
命令如下:
npm install mongodb
这个时候会在package.json
中看到"mongodb": "^3.3.4"
的字样,说明第一步已经安装成功了。
第二步:创建一个连接数据库的commonModel模块
目录结构如图述所
目录结构图
const MongoClient = require('mongodb').MongoClient;
const ObjectId = require('mongodb').ObjectId;
// 数据库所做的服务器地址
const url = "mongodb://localhost:27017/";
const commonModel = {
/**
* 插入数据的公共方法
* @param {*} coll 要插入数据的集合名称
* @param {*} data 插入到数据库的数据
*/
add(coll, data) {
let promise = new Promise((resolve, reject) => {
// connect 连接数据的方法
MongoClient.connect(url, {
useNewUrlParser: true
}, function(err, db) {
// err如果有值表示连接失败,若成功err的值为null
if (err) reject(err);
// 获取我们要操作的数据库,1组用maizuo1,2组用maizuo2
var dbo = db.db("frult");
// dbo是我们要操作的数据库,dbo.collection("area")是我们要操作的area集合
// insertOne插入一条数据
dbo.collection(coll).insertOne(data, function(err, res) {
// err有值表示失败,没值表示成功,res是插入成功后返回给我们的数据
if (err) reject(err);
resolve(res.result);
db.close();
});
});
})
// 返回一个promise
return promise;
},
/**
* 插入列表的公共方法
* @param {*} coll 要插入数据的集合名称
*/
getList(coll) {
let promise = new Promise((resolve, reject) => {
// connect 连接数据的方法
MongoClient.connect(url, {
useNewUrlParser: true
}, function(err, db) {
// err如果有值表示连接失败,若成功err的值为null
if (err) reject(err);
// 获取我们要操作的数据库,1组用maizuo1,2组用maizuo2
var dbo = db.db("frult");
// dbo是我们要操作的数据库,dbo.collection("area")是我们要操作的area集合
dbo.collection(coll).find({}).toArray(function(err, result) {
// err有值表示失败,没值表示成功,res是插入成功后返回给我们的数据
if (err) reject(err);
resolve(result);
db.close();
});
});
})
// 返回一个promise
return promise;
},
del(coll, _id) {
let promise = new Promise((resolve, reject) => {
// connect 连接数据的方法
MongoClient.connect(url, {
useNewUrlParser: true
}, function(err, db) {
// err如果有值表示连接失败,若成功err的值为null
if (err) reject(err);
// 获取我们要操作的数据库,1组用maizuo1,2组用maizuo2
var dbo = db.db("frult");
let data = {
_id: ObjectId(_id)
}
// dbo是我们要操作的数据库,dbo.collection("area")是我们要操作的area集合
dbo.collection(coll).deleteOne(data, function(err, result) {
// err有值表示失败,没值表示成功,res是插入成功后返回给我们的数据
if (err) reject(err);
resolve(result);
db.close();
});
});
})
// 返回一个promise
return promise;
}
}
module.exports = commonModel;
第二步:在appModel模块中导入我们上一步写好的连接数据库模块
const appModel = {
home() {
return "Model首页"
},
getList() {
let res = commonModel.getList("city")
return res
},
add(data) {
let res = commonModel.add('city', data)
return res
},
del(data) {
let res = commonModel.del('city', data)
},
updated() {
return "Model更新"
},
}
module.exports = appModel;
这样我们就能够连接数据库了