node.js连接mongoDB数据库

1,下载mongoose

1
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,
};

 

posted @   倚栏听风时  阅读(288)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示