mongoose的使用

版权声明:转载请注明出处! https://blog.csdn.net/qq_42303885/article/details/86171147

网上有很多mongoose的帖子了,为什么我还要写这篇博客,因为无法复用啊,当然了他们肯定的懂的啦。

新建db.js,里面主要是数据库的连接和断开,以及返回数据。consts.js是参数文件。

var mongoose = require('mongoose');
var dbUrl = 'mongodb://localhost:27017/tt';
var consts = require('../consts');
//断开数据库连接
function end(res, msg) {
    mongoose.disconnect(() => {
        if(typeof msg === 'string') {
            res.json(consts(msg));
        } else {
            //如果是个对象
            res.json(msg);
        }
    });
}
//连接数据库
function connect(res) {
    mongoose.connect(dbUrl, {useNewUrlParser: true});
    //连接失败
    mongoose.connection.on('error', () => {
        end(res, 'connectError');
    });
}
module.exports = {
    end, connect
}

新建userInfo.js,里面是Schema和Model

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var userSchema = new Schema({
  username: {
    type: String
  },
  password: {
    type: String
  }
});
module.exports = mongoose.model('UserInfo', userSchema);

应用
比如说注册,先引入上面那两个js文件。

var db = require('../../db/db');
var UserInfo = require('../../db/userInfo');
module.exports = (req, res) => {
  db.connect(res);
  var username = req.body.username;
  var password = req.body.password;
  var userInfo = new UserInfo({
    username,
    password
  });
  userInfo.save((err) => {
    if (err) {
      db.end(res, 'saveError');
    } else {
      db.end(res, 'success');
    }
  })
}

比如说登录。

var db = require('../../db/db');
var UserInfo = require('../../db/userInfo');
module.exports = (req, res) => {
  db.connect(res);
  var username = req.body.username;
  var password = req.body.password;
  UserInfo.find({
    username,
    password
  }, (err, doc) => {
    if (err) {
      db.end(res, 'findError');
    } else {
      if (Object.keys(doc).length) {
        req.session.username = username;
        return db.end(res, {
          error: 0,
          data: {
            username
          }
        });
      }
      db.end(res, 'noUser');
    }
  })
}

比如说注册时核查用户名是否被占用。

var db = require('../../db/db');
var UserInfo = require('../../db/userInfo');
module.exports = (req, res) => {
  db.connect(res);
  var username = req.body.username;
  UserInfo.find({
    username
  }, (err, doc) => {
    if (err) {
      db.end(res, 'findError');
    } else {
      if (Object.keys(doc).length) {
        return db.end(res, 'hasUser');
      }
      db.end(res, 'usernameIsOK');
    }
  })
}

mongoose提供了很多API,详情见 => https://cn.mongoosedoc.top/docs/api.html#Model

猜你喜欢

转载自blog.csdn.net/qq_42303885/article/details/86171147