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开发入门项目 链接 线上站点: 源码地址:
随机推荐
- Gin + 七牛云对象存储
配置七牛云存储 创建存储空间 拿到密钥 安装七牛云对象存储SDK 推荐go.mod安装 // 将下面地址复制到go.mod,然后执行go mod download github.com/qiniu/a ...
- python删除list中的空list
list1 = [[], [], [], [], [], 'text', 'text2', [], 'moreText'] 如何删除空列表,以便我得到: list2 = ['text', 'text2 ...
- Beta冲刺随笔——Day_Two
这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 Beta 冲刺 这个作业的目标 团队进行Beta冲刺 作业正文 正文 其他参考文献 无 今日事今日毕 林涛: ...
- 【手把手学习flutter】Flutter打Android包的基本配置和包体积优化策略
[手把手学习flutter]Flutter打Android包的基本配置和包体积优化策略 关注「松宝写代码」,回复"加群" 加入我们一起学习,天天向上 前言 因为最近参加2020FE ...
- opencv-python imread、imshow浏览目录下的图片文件
☞ ░ 前往老猿Python博文目录 ░ 一.几个知识点 1.1.使用Python查找目录下的文件 具体请参考<Python正则表达式re模块和os模块实现文件搜索模式匹配>. 1.2.o ...
- PyQt(Python+Qt)学习随笔:QSpinBox数字设定部件简介
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 在输入部件中,数字调整框QSpinBox是个很实用 ...
- Python中的迭代是什么意思?
Python中的迭代是指通过重复执行的代码处理相似的数据集的过程,并且本次迭代的处理数据要依赖上一次的结果继续往下做,上一次产生的结果为下一次产生结果的初始状态,如果中途有任何停顿,都不能算是迭代. ...
- PyQt(Python+Qt)学习随笔:QTreeWidgetItem项获取项的父项或子项
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 树型部件QTreeWidget中的QTreeWidgetItem项,可以通过child(int in ...
- python xlsxwriter创建excel 之('Exception caught in workbook destructor. Explicit close() may be required for workbook.',)
python2.7使用xlsxwriter创建excel ,不关闭xlsxwriter对象,会报错: Exception Exception: Exception('Exception caught ...
- 第三篇 Scrum 冲刺博客
一.站立式会议 1. 会议照片 2. 工作汇报 团队成员名称 昨日(24日)完成的工作 今天(25日)计划完成的工作 工作中遇到的困难 陈锐基 - 个人信息编辑后与组件关联- 表白墙数据用 Vuex ...