三:node连接数据库MongoDB

第一步:在我们的项目中下载安装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;

这样我们就能够连接数据库了

你可能感兴趣的:(三:node连接数据库MongoDB)