node.js连接mongoDB数据库
1,下载mongoose
npm i mongoose --save
2.新建一个mongoose.js文件,引入第三方模块
const mongoose = require("mongoose");
3.设置模板,定义表结构
var Schema=mongoose.Schema;
4.定义一个数据库的连接行为判断变量
const db = mongoose.connection;
5.通过mongoose.Schema调用Schema,然后用new方法来创建Schema,创建表结构
var PackData=new Schema({ user:{type:String,unique:true}, password:String, age:Number, sex:String, email:String, tel:String })
6.生成数据模型
var Pack=mongoose.model("user",PackData);
7.定义一个函数,判断数据库是否连接成功
function initConnect() { return new Promise((resolve, reject) => { mongoose.connect("mongodb://127.0.0.1:27017/SSRProjectData", { useNewUrlParser: true, useUnifiedTopology: true, }); db.on("open", () => console.log("数据库连接成功")); db.on("disconnected", () => console.log("数据库连接已断开")); }); }
8.数据库连接成功进行增删改查--------增加
function save(t) { return new Promise((resolve, reject) => { t.save({}, function (err, data) { resolve(err ? err : data); }); }); }
9.定义一个查询规则,进行数据的查询
function find(rules) { if (!rules) { rules = {}; } else { let str = rules; rules = {}; let sign = str.match(/(>)|(<)|(===)/g)[0]; sign = str.match(/(>=)|(<=)/g) ? str.match(/(>=)|(<=)/g)[0] : sign; let target = str.split(sign)[0]; let value = str.split(sign)[1]; switch (sign) { case "<": rules[target] = { $lt: value }; break; case ">": rules[target] = { $gt: value }; break; case "<=": rules[target] = { $lte: value }; break; case ">=": rules[target] = { $gte: value }; break; case "===": rules[target] = value; break; } } return new Promise((resolve, reject) => { Pack.find(rules, (err, data) => { resolve(err ? err : data); }); }); }
10.对数据进行修改
function updata(rules, option) { return new Promise((resolve, reject) => { Pack.updateOne(rules, option, (err, data) => { resolve(err ? err : data); }); }); }
11.对数据库里的数据进行删除操作
function removeData(rules) { return new Promise((resolve, reject) => { Pack.deleteOne(rules, () => resolve(find())); }); }
12.将上边的函数进行导出,就可以正常使用了
module.exports = {
Pack,
removeData,
updata,
find,
save,
initConnect,
};