0.0.1 • Published 6 years ago

@dkvirus/mongoose-tools v0.0.1

Weekly downloads
1
License
ISC
Repository
-
Last release
6 years ago

概述

@dkvirus/mongoose-tools 字面意思,mongoose 工具库。

功能:

  • 提供接口快速连接数据库;
  • 提供 mongoose 常用 CRUD 接口,返回 Promise,与 async/await 配合使用让代码阅读起来更优雅。

使用

$ npm install @dkvirus/mongoose-tools

连接数据库

// app.js
const mongooseUtils = require('@dkvirus/mongoose-tools');

// 连接数据库
mongooseUtils.connectDb('mongodb://101.132.106.45:27017/test');

继承 Mongoose CRUD 接口

// userDao.js
const mongoose = require('mongoose');
const mongooseUtils = require('@dkvirus/mongoose-tools'); 

// 表结构
const UserSchema = new mongoose.Schema({
    username: String,
    password: String,
});

// 注册模型
const UserModel = mongoose.model('test_user', UserSchema);

// 继承 Mongoose CRUD 接口
class UserDao extends mongooseUtils.Crud {
    constructor (model) {
        super(model);
    }
}

// 创建实例对象
const userDao = new UserDao(UserModel);

/**
 * 实例对象中拥有父类的方法:
 * - create()
 * - deleteMany()
 * - deleteOne()
 * - updateMany()
 * - updateOne()
 * - update()
 * - find()
 * - findOne()
 * - findById()
 * - count()
 */

module.exports = userDao;

使用示例:

const userDao = require('./userDao');

app.post('/user', async function (req, res) {
    const data = req.body;  // 前端传来的用户对象 { username: 'dkvirus', password: '111111' }

    const result = await userDao.create(data);
    res.json(result);
})