nodejs+express+mongodb 快速接口开发

# quick-mongo

nodejs+mongodb+express API快速生成

## 使用说明

安装

$ npm install duzq-quick-mongo

建立mongodb数据模型

const mongoose= require("../utils/mongodb")

const dayjs= require("dayjs")

// User模型

const UserSchema = new mongoose.Schema({

    id:{type:String, default: dayjs().unix()},

    name:String,

    pwd:{type: String,required:true,

        set(val){ // 密码加密

return require("bcrypt").hashSync(val,10)

}},

    mobile:{type: String, required:true},

    createTime:String,

    updateTime:String,

},{

    timestamps: { createdAt: 'createTime', updatedAt: 'updateTime' }

})

const User = mongoose.model("User",UserSchema)

// export

module.exports = User;


初始化控制器

const {Controller} = require("duzq-quick-mongo")

const user = new Controller( require("../models/User"))

添加路由

router.post("/add", user.add)

router.post("/getItem", user.getItem)

router.post("/delete", user.delete)

router.post("/update", user.update)

router.post("/list", user.list)

router.post("/search", user.search)


恭喜你。

实现了User模块的增删改查的功能。

## 接口使用

### 添加数据

请求参数

{

  "name": "dzq",

  "mobile": "13800138000",

  "pwd": "123456"

}

返回结果

{

  "code": 200,

  "msg": "success",

  "data": {

      "id": "1608954581",

      "_id": "5fe6b2f1eb030db3f5d4c1bd",

      "name": "dzq",

      "mobile": "13800138000",

      "pwd": "$2b$10$VMgVXPNSI7TuHtIYo0vY0ufi6PgsCEc.sv1VkSl0KKkd9Hv3u4gOO",

      "createTime": "Sat Dec 26 2020 11:50:10 GMT+0800 (China Standard Time)",

      "updateTime": "Sat Dec 26 2020 11:50:10 GMT+0800 (China Standard Time)",

      "__v": 0

}

}

### 获取数据

请求参数

{

  "id": "1608954581"

}

返回结果

{

  "code": 200,

  "msg": "success",

  "data": {

      "id": "1608954581",

      "_id": "5fe6b2f1eb030db3f5d4c1bd",

      "name": "dzq",

      "mobile": "13800138000",

      "pwd": "$2b$10$VMgVXPNSI7TuHtIYo0vY0ufi6PgsCEc.sv1VkSl0KKkd9Hv3u4gOO",

      "createTime": "Sat Dec 26 2020 11:50:10 GMT+0800 (China Standard Time)",

      "updateTime": "Sat Dec 26 2020 11:50:10 GMT+0800 (China Standard Time)",

      "__v": 0

}

}

### 删除数据

请求参数

{

  "id": "1608954581"

}

返回结果

{

  "code": 200,

  "msg": "success",

  "data": {

      "id": "1608954581",

      "_id": "5fe6b2f1eb030db3f5d4c1bd",

      "name": "dzq",

      "mobile": "13800138000",

      "pwd": "$2b$10$VMgVXPNSI7TuHtIYo0vY0ufi6PgsCEc.sv1VkSl0KKkd9Hv3u4gOO",

      "createTime": "Sat Dec 26 2020 11:50:10 GMT+0800 (China Standard Time)",

      "updateTime": "Sat Dec 26 2020 11:50:10 GMT+0800 (China Standard Time)",

      "__v": 0

}

}

错误结果

{

  "code": 301,

  "msg": "failed"

}

### 更新数据

请求参数

{

  "id": "1608954581",

  "updateData": {

      "mobile": 13800138099,

      "pwd": "666666"

}

}

### 获取数据列表

请求参数

{

  "pageSize": 10,

  "page": 1

}

返回结果

{

  "code": 200,

  "msg": "success",

  "data": {

      "pageSize": 10,

      "page": 1,

      "total": 1,

      "data": [

{

            "id": "1608954581",

            "name": "dzq",

            "mobile": "13800138000",

            "pwd": "$2b$10$4otU4K9W08whZ3DFJyflBeXgxzRGrHpxlHKT940gDvvvgLmCBYT4a",

            "createTime": "Sat Dec 26 2020 11:57:19 GMT+0800 (China Standard Time)",

            "updateTime": "Sat Dec 26 2020 11:57:19 GMT+0800 (China Standard Time)"

}

]

}

}

### 查找数据

请求参数

默认查询条件为与操作,条件满足其中一条需要设置operator为or

{

  "pageSize": 10,

  "page": 1,

  "conditions": {

      "name": "dzq",

      "mobile": "18518318421"

},

  "operator": "or"

}

返回结果

{

  "code": 200,

  "msg": "success",

  "data": {

      "pageSize": 10,

      "page": 1,

      "total": 1,

      "data": [

{

            "id": "1608954581",

            "name": "dzq",

            "mobile": "13800138000",

            "pwd": "$2b$10$4otU4K9W08whZ3DFJyflBeXgxzRGrHpxlHKT940gDvvvgLmCBYT4a",

            "createTime": "Sat Dec 26 2020 11:57:19 GMT+0800 (China Standard Time)",

            "updateTime": "Sat Dec 26 2020 11:57:19 GMT+0800 (China Standard Time)"

}

]

}

}

## 高级应用

插件提供了一下高级自定义功能

const {Controller} = require("duzq-quick-mongo")

const user = new Controller( require("../models/User"))

// 设置数据查询字段

user.projection= {"__v":0,"pwd":0,"updateTime":0,"createTime":0}

// 设置成功编号

user.CODE_OK= 200

// 设置成功消息

user.MSG_OK= "请求成功"

// 设置失败编号

user.CODE_ERROR= 201

// 设置失败消息

user.MSG_ERROR= "请求错误"

自定义前返回数据

{

  "code": 200,

  "msg": "success",

  "data": {

      "id": "1608954581",

      "_id": "5fe6b2f1eb030db3f5d4c1bd",

      "name": "dzq",

      "mobile": "13800138000",

      "pwd": "$2b$10$VMgVXPNSI7TuHtIYo0vY0ufi6PgsCEc.sv1VkSl0KKkd9Hv3u4gOO",

      "createTime": "Sat Dec 26 2020 11:50:10 GMT+0800 (China Standard Time)",

      "updateTime": "Sat Dec 26 2020 11:50:10 GMT+0800 (China Standard Time)",

      "__v": 0

}

}

自定义后获取数据

{

  "code": 200,

  "msg": "请求成功",

  "data": {

      "id": "1608954581",

      "_id": "5fe6b49feb030db3f5d4c1be",

      "name": "dzq",

      "mobile": "13800138000"

}

}

示例代码:https://github.com/dzq/quick-mongo-simple

更加功能需求请提交issue: https://github.com/dzq/quick-mongo

你可能感兴趣的:(nodejs+express+mongodb 快速接口开发)