经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MongoDB » 查看文章
nodejs+express+mongodb 快速接口开发
来源:cnblogs  作者:杜增强  时间:2020/12/28 9:53:27  对本文有异议

nodejs+mongodb+express API快速生成

使用说明

安装

$ npm install duzq-quick-mongo

建立mongodb数据模型

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

原文链接:http://www.cnblogs.com/duzq/p/14192140.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号