登录注册案例—MongoDB数据库连接

登录注册案例—MongoDB数据库连接

const mongoose = require('mongoose')

// 连接数据库
mongoose.connect('mongodb://127.0.0.1:27017/2005',{useNewUrlParser: true},err => {
  if (err ) throw err  
  console.log('数据库连接成功')
})

// 创建骨架

const userSchema = new mongoose.Schema({
  username: String,
  pass: String,
  phone: String,
  email: String,
  pic: String
})

// 创建模型

const userModel = mongoose.model('users',userSchema)

module.exports = {
  users: {
    register (data) {
      return new Promise(async (resolve,reject) => {
         const {docs} = await this.query()
         if (docs) {
            if (docs.some(item=> item.username == data.username)) {
              resolve({
                status: 2,
                msg: '用户名已存在,请重新输入一个用户名'
              })
            } else {
              const userEntity = new userModel(data)
              userEntity.save(err=> {
                if (!err) resolve({
                  status: 1,
                  msg: '注册成功'
                })
              })
             
            }
         }
      })
    },
    login (data) {
      console.log('data',data)
      const {loginName,pass} = data
      return new Promise(async (resolve,reject) => {
        const {docs} = await this.query()
        userModel.find({username: loginName,pass},(err,doc) => {
          // console.log('doc',doc) 
          if (doc.length != 0) {
            resolve({
              status: 1,
              msg: '登录成功', 
              pic: doc[0].pic
            })
          } else {
            userModel.find({email: loginName,pass},(err,docs) => {
              if (docs.length !=0){
                resolve({
                  status: 1,
                  msg: '登录成功', 
                  pic: docs[0].pic
                })
              } else {
                resolve({
                  status: 0,
                  msg: '用户名或密码错误,请重试'
                })
              }
            })
          }

        })
      })
    },
    getUserInfo () {},
    delUser () {},
    sealUser () {},
    query () {
      return new Promise((resolve,reject) => {
        userModel.find({},(error,docs) => {
          if (error) reject({
            status: 0,
            msg: '查询失败'
          })
          resolve({
            status: 1,
            msg: '查询成功',
            docs
          })
        })
      })
    }
  }
}
原文地址:https://www.cnblogs.com/xz233/p/13556010.html