nodejs+mongodb+express API快速生成

使用说明

安装

$ npm install duzq-quick-mongo

建立mongodb数据模型

  1. const mongoose = require("../utils/mongodb")
  2. const dayjs = require("dayjs")
  3.  
  4. // User模型
  5. const UserSchema = new mongoose.Schema({
  6. id:{type:String, default: dayjs().unix()},
  7. name:String,
  8. pwd:{type: String,required:true,
  9. set(val){ // 密码加密
  10. return require("bcrypt").hashSync(val,10)
  11. }},
  12. mobile:{type: String, required:true},
  13. createTime:String,
  14. updateTime:String,
  15. },{
  16. timestamps: { createdAt: 'createTime', updatedAt: 'updateTime' }
  17. })
  18. const User = mongoose.model("User",UserSchema)
  19. // export
  20. module.exports = User;

初始化控制器

  1. const {Controller} = require("duzq-quick-mongo")
  2. const user = new Controller( require("../models/User"))

添加路由

  1. router.post("/add", user.add)
  2. router.post("/getItem", user.getItem)
  3. router.post("/delete", user.delete)
  4. router.post("/update", user.update)
  5. router.post("/list", user.list)
  6. router.post("/search", user.search)

恭喜你。

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

接口使用

添加数据

请求参数

  1. {
  2. "name": "dzq",
  3. "mobile": "13800138000",
  4. "pwd": "123456"
  5. }

返回结果

  1. {
  2. "code": 200,
  3. "msg": "success",
  4. "data": {
  5. "id": "1608954581",
  6. "_id": "5fe6b2f1eb030db3f5d4c1bd",
  7. "name": "dzq",
  8. "mobile": "13800138000",
  9. "pwd": "$2b$10$VMgVXPNSI7TuHtIYo0vY0ufi6PgsCEc.sv1VkSl0KKkd9Hv3u4gOO",
  10. "createTime": "Sat Dec 26 2020 11:50:10 GMT+0800 (China Standard Time)",
  11. "updateTime": "Sat Dec 26 2020 11:50:10 GMT+0800 (China Standard Time)",
  12. "__v": 0
  13. }
  14. }

获取数据

请求参数

  1. {
  2. "id": "1608954581"
  3. }

返回结果

  1. {
  2. "code": 200,
  3. "msg": "success",
  4. "data": {
  5. "id": "1608954581",
  6. "_id": "5fe6b2f1eb030db3f5d4c1bd",
  7. "name": "dzq",
  8. "mobile": "13800138000",
  9. "pwd": "$2b$10$VMgVXPNSI7TuHtIYo0vY0ufi6PgsCEc.sv1VkSl0KKkd9Hv3u4gOO",
  10. "createTime": "Sat Dec 26 2020 11:50:10 GMT+0800 (China Standard Time)",
  11. "updateTime": "Sat Dec 26 2020 11:50:10 GMT+0800 (China Standard Time)",
  12. "__v": 0
  13. }
  14. }

删除数据

请求参数

  1. {
  2. "id": "1608954581"
  3. }

返回结果

  1. {
  2. "code": 200,
  3. "msg": "success",
  4. "data": {
  5. "id": "1608954581",
  6. "_id": "5fe6b2f1eb030db3f5d4c1bd",
  7. "name": "dzq",
  8. "mobile": "13800138000",
  9. "pwd": "$2b$10$VMgVXPNSI7TuHtIYo0vY0ufi6PgsCEc.sv1VkSl0KKkd9Hv3u4gOO",
  10. "createTime": "Sat Dec 26 2020 11:50:10 GMT+0800 (China Standard Time)",
  11. "updateTime": "Sat Dec 26 2020 11:50:10 GMT+0800 (China Standard Time)",
  12. "__v": 0
  13. }
  14. }

错误结果

  1. {
  2. "code": 301,
  3. "msg": "failed"
  4. }

更新数据

请求参数

  1. {
  2. "id": "1608954581",
  3. "updateData": {
  4. "mobile": 13800138099,
  5. "pwd": "666666"
  6. }
  7. }

获取数据列表

请求参数

  1. {
  2. "pageSize": 10,
  3. "page": 1
  4. }

返回结果

  1. {
  2. "code": 200,
  3. "msg": "success",
  4. "data": {
  5. "pageSize": 10,
  6. "page": 1,
  7. "total": 1,
  8. "data": [
  9. {
  10. "id": "1608954581",
  11. "name": "dzq",
  12. "mobile": "13800138000",
  13. "pwd": "$2b$10$4otU4K9W08whZ3DFJyflBeXgxzRGrHpxlHKT940gDvvvgLmCBYT4a",
  14. "createTime": "Sat Dec 26 2020 11:57:19 GMT+0800 (China Standard Time)",
  15. "updateTime": "Sat Dec 26 2020 11:57:19 GMT+0800 (China Standard Time)"
  16. }
  17. ]
  18. }
  19. }

查找数据

请求参数

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

  1. {
  2. "pageSize": 10,
  3. "page": 1,
  4. "conditions": {
  5. "name": "dzq",
  6. "mobile": "18518318421"
  7. },
  8. "operator": "or"
  9. }

返回结果

  1. {
  2. "code": 200,
  3. "msg": "success",
  4. "data": {
  5. "pageSize": 10,
  6. "page": 1,
  7. "total": 1,
  8. "data": [
  9. {
  10. "id": "1608954581",
  11. "name": "dzq",
  12. "mobile": "13800138000",
  13. "pwd": "$2b$10$4otU4K9W08whZ3DFJyflBeXgxzRGrHpxlHKT940gDvvvgLmCBYT4a",
  14. "createTime": "Sat Dec 26 2020 11:57:19 GMT+0800 (China Standard Time)",
  15. "updateTime": "Sat Dec 26 2020 11:57:19 GMT+0800 (China Standard Time)"
  16. }
  17. ]
  18. }
  19. }

高级应用

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

  1. const {Controller} = require("duzq-quick-mongo")
  2. const user = new Controller( require("../models/User"))
  3. // 设置数据查询字段
  4. user.projection = {"__v":0,"pwd":0,"updateTime":0,"createTime":0}
  5. // 设置成功编号
  6. user.CODE_OK = 200
  7. // 设置成功消息
  8. user.MSG_OK = "请求成功"
  9. // 设置失败编号
  10. user.CODE_ERROR = 201
  11. // 设置失败消息
  12. user.MSG_ERROR = "请求错误"

自定义前返回数据

  1. {
  2. "code": 200,
  3. "msg": "success",
  4. "data": {
  5. "id": "1608954581",
  6. "_id": "5fe6b2f1eb030db3f5d4c1bd",
  7. "name": "dzq",
  8. "mobile": "13800138000",
  9. "pwd": "$2b$10$VMgVXPNSI7TuHtIYo0vY0ufi6PgsCEc.sv1VkSl0KKkd9Hv3u4gOO",
  10. "createTime": "Sat Dec 26 2020 11:50:10 GMT+0800 (China Standard Time)",
  11. "updateTime": "Sat Dec 26 2020 11:50:10 GMT+0800 (China Standard Time)",
  12. "__v": 0
  13. }
  14. }

自定义后获取数据

  1. {
  2. "code": 200,
  3. "msg": "请求成功",
  4. "data": {
  5. "id": "1608954581",
  6. "_id": "5fe6b49feb030db3f5d4c1be",
  7. "name": "dzq",
  8. "mobile": "13800138000"
  9. }
  10. }

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

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

nodejs+express+mongodb 快速接口开发的更多相关文章

  1. 【重点突破】—— Nodejs+Express+MongoDB的使用基础

    前言:最近学习vue和react的高阶项目,都需要和Nodejs+Express+MongoDB结合实现全栈开发.这里结合实例Demo和所学项目集中总结一下这部分服务端的基础知识. 一.Express ...

  2. nodejs+express+mongodb实现登录注册

    nodejs+express+mongodb实现登录注册 1 简介 登录注册功能使用nodejs+express+mongodb完成,其中对mongodb的操作使用mongoose完成,对mongod ...

  3. NodeJS+Express+MongoDB

    一.MongoDB MongoDB是开源,高性能的NoSQL数据库:支持索引.集群.复制和故障转移.各种语言的驱动程序丰富:高伸缩性:MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言 ...

  4. NodeJS+Express+MongoDB 简单实现数据录入及回显展示【适合新人刚接触学习】

    近期在看NodeJS相关 不得不说NodeJS+Express 进行网站开发是很不错,对于喜欢玩JS的来说真是很好的一种Web开发组合 在接触NodeJS时受平时Java或者C#中API接口等开发的思 ...

  5. nodejs+express+mongodb简单的例子

    简单的介绍下node+express+mongodb这三个东西.node:是运行在服务器端的程序语言,表面上看过去就是javascript一样的东西,但是呢,确实就是服务器语言,个人觉得在一定层次上比 ...

  6. NodeJS+Express+mySQL服务端开发详解

    随着NodeJS的发展,现在已经被很多人熟知,NodeJS已经成为了前端开发人员必备的技能.本文不会对NodeJS过多介绍 如果你感兴趣可以访问NodeJS 官网, 维基百科 本文是利用NodeJS+ ...

  7. 从无到有,用Nodejs+express+mongodb搭建简易登陆系统

    前端处理server表示很蛋疼,初学Node,虽然感觉异常强大,但是学起来还是有些吃力的,Node是工具,它不是万能的,搭建一个系统还是需要借助其他一些工具,对于我这个没怎么接触server的前端来说 ...

  8. nodejs+express+mongodb写api接口的简单尝试

    1:启动mongodb服务 我的mongoDB的安装目录:E:\mongoDB\bin,版本:3.4.9 打开cmd  -> e:(进入e盘) -> cd mongoDB/bin(进入mo ...

  9. 基于 React + NodeJS + Express + MongoDB 开发的一个社区系统

    还可以, 功能挺全的, 可以作为react开发入门项目 链接 线上站点: 源码地址:

随机推荐

  1. 为什么学完C语言觉得好像没学一般?

    不少同学从Hello world学到文件操作之后,回顾感觉会又不会? 学会了又感觉没学会?这种不踏实.模糊虚无的感觉?   原因在于编程不同于理论学科,你听懂和理解了理论就可以运用. 比如历史地理,看 ...

  2. C++/Java小白解Leetcode题,发现了知识盲区……

    一.初见LeetCode 大一时候学习C++,根据课程一直在PTA平台做题目,数据结构和算法的作业题目也是在PTA.后来发现牛客网学习资源也很丰富,孤陋寡闻,前几个月在知道LeetCode这个平台,跟 ...

  3. 微信小程序 下拉刷新

    <scroll-view class='scroll-view-container' scroll-y="true" bindscrolltolower='scrollToL ...

  4. Generalizing from a Few Examples: A Survey on Few-Shot Learning 小样本学习最新综述 | 三大数据增强方法

    目录 原文链接:小样本学习与智能前沿 01 Transforming Samples from Dtrain 02 Transforming Samples from a Weakly Labeled ...

  5. docker镜像无法删除 Error:No such image:xxxxxx

    前言 docker镜像无法删除,通过 docker images 查看镜像明明存在就是删除不了. 删除提示:Error:No such image:xxxxxxx 具体截图内容如下: 解决方法 进入目 ...

  6. Python+moviepy使用manual_tracking和headblur函数10行代码实现视频人脸追踪打马赛克

    ☞ ░ 前往老猿Python博文目录 ░ 一.背景知识 1.1.headblur简介 追踪人脸打马赛克需要使用headblur函数. 调用语法: headblur(clip,fx,fy,r_zone, ...

  7. PyQt专题结题感言

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 今天写完PyQt专题显示部件的最后一篇文章,长长的 ...

  8. PyQt学习随笔:ListView控件的视图和数据模型分离案例

    Qt 中view类控件的目的是实现数据和模型分离,控件展示数据,数据保存在数据存储中,数据存储中的数据改变了,则控件中展示的数据跟随改变.当设计时只指定了一个控件和一个数据存储关联时,这种分离虽然也能 ...

  9. PyQt(Python+Qt)学习随笔:Qt Designer中toolBar的movable属性

    1.概述 movable属性用来确认toolBar是否可以移动,如果设置为可移动,则toolBar可以在主窗口范围内拖拽移动. 2.访问方法 通过isMovable().setMovable(bool ...

  10. PHP代码审计分段讲解(3)

    05 ereg正则%00截断 放上源代码 <?php $flag = "flag"; if (isset ($_GET['password'])) { if (ereg (& ...