开发轻量级REST API样板 基于Node.js/MongoDB 通过Mongoose驱动

科技资讯 投稿 5200 0 评论

开发轻量级REST API样板 基于Node.js/MongoDB 通过Mongoose驱动

ZY.Node.Mongodb

  • https://github.com/ZHYI-source/ZY.Node.Mongodb.git

项目介绍


    集成了Swagger UI、JWT、session、发送邮箱验证、日志管理、统一的预定义状态码响应格式等,对于为前端平台构建纯净的Web API非常有用。

  • 项目开放,可以提出建议、错误的issues。

项目特点


    轻量级Node.js项目提供Restful API
  • 数据库采用 Mongodb, 通过Mongoose驱动。
  • CRUD操作示例
  • 跨域处理
  • 日志管理
  • 具有恰当的状态代码的预定义响应结构
  • 全局错误处理
  • 增加express-validator请求参数校验
  • jwt验证 用户权限中间件分离
  • 基本身份验证(采用bcrypt单向Hash加密算法加密密码进行注册/登录)
  • Token生成和校验请求头的authorization
  • 集成swagger-ui
  • 增加邮件验证码通知
  • session 验证码校验
  • 采用jest 接口单元测试

如何获得并运行项目:


有的同学启动会报错可能是依赖包的版本问题需要注意
我的环境配置供参考

    Node.js 14.18.1+
  • MongoDB 5.1+

1,clone代码

git clone https://gitee.com/Z568_568/node.mongodb.git

2,安装依赖

npm install

3,启动程序

开发环境:npm run dev 基于 nodemon 热更新
生产环境:npm run start

4,启动成功示例

如何增加新的model


/models/v1/mapping/ 中创建一个新文件,
然后在控制器/controllers/v1/中创建一个对应新模型的新控制器的并使用。

如何增加新的路由router


/routes/v1/ 中创建一个新文件,并且引入它对应的controllers进行使用,routes下面的文件 将被 mount-routes插件自动解析并以文件名作为api根路径,
开发环境下会打印在终端上:

如何增加新的控制器


/controllers/v1/ 中创建一个新文件即可,并且引入相关模型进行使用

如何理解内置的登录注册逻辑


/*
* TODO: 注册登录大概逻辑:
*       1.用户注册 - 用户信息入库 - 发送验证码 - 校验验证码
*                                   |
*                           验证码发送失败、验证码失效或者校验失败 - 重新发送或输入验证码 - 校验验证码
*   *
*       2.用户登录 -(账号、密码、验证状态都校验通过)- 发Token
*                       |
*                 验证状态不通过 - 重新校验验证码/重发验证码 - 校验验证码 - 发Token
* */

项目结构


.
├── app.js                  //入口文件
├── package.json            //依赖配置文件
├── .env.development        //开发环境配置
├── .env.production         //生产环境配置
├── config                  //项目配置
│   ├── db.config.js
│   ├── swagger.config.js
│   └── ...
├── controllers             //控制模块(业务处理)
│   └── v1
│       ├── UserController.js
│       └── ...
├── models                  //模型模块(建表)
│   └── v1
│       ├── user.test.js        /模型统一导出
│       └── mapping
│           ├──UserModel.js
│           └── ...
├── routes                  //路由(配置实际API地址路径)
│     └── v1
│         ├── user.test.js
│         ├── user.js
│         └── ...
├── db                      //mongodb数据库连接
│   ├── user.test.js              
│   └── ...
├── middlewares             //中间件
│   ├── jwt.js
│   ├── permissions.js
│   ├── session.js
│   └── ...
├── logs                    //日志
│   ├── info.log
│   ├── error.log
│   └── ...
└── utils                   //辅助工具
    ├── utils.apiResponse.js
    ├── utils.mailer.js.js
    └── ...

关于作者


创建和维护由

    @ZY_GITEE
  • @ZY_GITHUB
  • 想咨询其他或合作请发我邮箱1840354092@qq.com
  • 到我主页留言http://www.zhouyi.run
  • 我的博客站点http://blog.zhouyi.run

编程笔记 » 开发轻量级REST API样板 基于Node.js/MongoDB 通过Mongoose驱动

赞同 (26) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽