zoukankan      html  css  js  c++  java
  • nodejs+express+mongodb 快速接口开发

    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


    /// <-----------summary----------->
    /// < ---------杜增强的博客--------->
    /// < -专注于Unity游戏,VR/AR开发->
    /// <-----------summary----------->
  • 相关阅读:
    小菜编程成长记(四 业务的封装)
    小菜学Flex2(二 currentState初步使用)
    小菜编程成长记(九 反射——程序员的快乐!)
    小菜编程成长记(一 面试受挫——代码无错就是好?)
    小菜编程成长记(六 关于Flex的争论)
    小菜编程成长记(三 复制VS复用)
    104种木马的清除方法
    细节决定成败打电话和发邮件的细节
    MS SQL Server查询优化方法
    美国西点军校最重要的行为准则:没有任何借口
  • 原文地址:https://www.cnblogs.com/duzq/p/14192140.html
Copyright © 2011-2022 走看看