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
nodejs+express+mongodb 快速接口开发的更多相关文章
- 【重点突破】—— Nodejs+Express+MongoDB的使用基础
前言:最近学习vue和react的高阶项目,都需要和Nodejs+Express+MongoDB结合实现全栈开发.这里结合实例Demo和所学项目集中总结一下这部分服务端的基础知识. 一.Express ...
- nodejs+express+mongodb实现登录注册
nodejs+express+mongodb实现登录注册 1 简介 登录注册功能使用nodejs+express+mongodb完成,其中对mongodb的操作使用mongoose完成,对mongod ...
- NodeJS+Express+MongoDB
一.MongoDB MongoDB是开源,高性能的NoSQL数据库:支持索引.集群.复制和故障转移.各种语言的驱动程序丰富:高伸缩性:MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言 ...
- NodeJS+Express+MongoDB 简单实现数据录入及回显展示【适合新人刚接触学习】
近期在看NodeJS相关 不得不说NodeJS+Express 进行网站开发是很不错,对于喜欢玩JS的来说真是很好的一种Web开发组合 在接触NodeJS时受平时Java或者C#中API接口等开发的思 ...
- nodejs+express+mongodb简单的例子
简单的介绍下node+express+mongodb这三个东西.node:是运行在服务器端的程序语言,表面上看过去就是javascript一样的东西,但是呢,确实就是服务器语言,个人觉得在一定层次上比 ...
- NodeJS+Express+mySQL服务端开发详解
随着NodeJS的发展,现在已经被很多人熟知,NodeJS已经成为了前端开发人员必备的技能.本文不会对NodeJS过多介绍 如果你感兴趣可以访问NodeJS 官网, 维基百科 本文是利用NodeJS+ ...
- 从无到有,用Nodejs+express+mongodb搭建简易登陆系统
前端处理server表示很蛋疼,初学Node,虽然感觉异常强大,但是学起来还是有些吃力的,Node是工具,它不是万能的,搭建一个系统还是需要借助其他一些工具,对于我这个没怎么接触server的前端来说 ...
- nodejs+express+mongodb写api接口的简单尝试
1:启动mongodb服务 我的mongoDB的安装目录:E:\mongoDB\bin,版本:3.4.9 打开cmd -> e:(进入e盘) -> cd mongoDB/bin(进入mo ...
- 基于 React + NodeJS + Express + MongoDB 开发的一个社区系统
还可以, 功能挺全的, 可以作为react开发入门项目 链接 线上站点: 源码地址:
随机推荐
- 为什么学完C语言觉得好像没学一般?
不少同学从Hello world学到文件操作之后,回顾感觉会又不会? 学会了又感觉没学会?这种不踏实.模糊虚无的感觉? 原因在于编程不同于理论学科,你听懂和理解了理论就可以运用. 比如历史地理,看 ...
- C++/Java小白解Leetcode题,发现了知识盲区……
一.初见LeetCode 大一时候学习C++,根据课程一直在PTA平台做题目,数据结构和算法的作业题目也是在PTA.后来发现牛客网学习资源也很丰富,孤陋寡闻,前几个月在知道LeetCode这个平台,跟 ...
- 微信小程序 下拉刷新
<scroll-view class='scroll-view-container' scroll-y="true" bindscrolltolower='scrollToL ...
- Generalizing from a Few Examples: A Survey on Few-Shot Learning 小样本学习最新综述 | 三大数据增强方法
目录 原文链接:小样本学习与智能前沿 01 Transforming Samples from Dtrain 02 Transforming Samples from a Weakly Labeled ...
- docker镜像无法删除 Error:No such image:xxxxxx
前言 docker镜像无法删除,通过 docker images 查看镜像明明存在就是删除不了. 删除提示:Error:No such image:xxxxxxx 具体截图内容如下: 解决方法 进入目 ...
- Python+moviepy使用manual_tracking和headblur函数10行代码实现视频人脸追踪打马赛克
☞ ░ 前往老猿Python博文目录 ░ 一.背景知识 1.1.headblur简介 追踪人脸打马赛克需要使用headblur函数. 调用语法: headblur(clip,fx,fy,r_zone, ...
- PyQt专题结题感言
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 今天写完PyQt专题显示部件的最后一篇文章,长长的 ...
- PyQt学习随笔:ListView控件的视图和数据模型分离案例
Qt 中view类控件的目的是实现数据和模型分离,控件展示数据,数据保存在数据存储中,数据存储中的数据改变了,则控件中展示的数据跟随改变.当设计时只指定了一个控件和一个数据存储关联时,这种分离虽然也能 ...
- PyQt(Python+Qt)学习随笔:Qt Designer中toolBar的movable属性
1.概述 movable属性用来确认toolBar是否可以移动,如果设置为可移动,则toolBar可以在主窗口范围内拖拽移动. 2.访问方法 通过isMovable().setMovable(bool ...
- PHP代码审计分段讲解(3)
05 ereg正则%00截断 放上源代码 <?php $flag = "flag"; if (isset ($_GET['password'])) { if (ereg (& ...