阅读本文前,需要提前阅读前置内容:
一、Midway 增删改查
二、Midway 增删改查的封装及工具类
三、Midway 接口安全认证
四、Midway 集成 Swagger 以及支持JWT bearer
五、Midway 中环境变量的使用
其遵循遵循两种编程范式
- 面向对象(OOP + Class + IoC);
- 函数式(FP + Function + Hooks);
谁较容易上手学习
- 懂Nodejs技术的前端开发;
- 会TypeScript的后端开发;
在这里你可以掌握度如下知识
- 面向对象的开发体验;
- 增删改查及基类封装;
- 数据库操作;
- 缓存操作;
- 用户安全认证及访问安全控制;
- JWT访问凭证;
- 分布式访问状态管理;
- 密码加解密;
- 统一返回结果封装;
- 统一异常管理;
- Snowflake主键生成;
- Swagger集成及支持访问认证;
- 环境变量的使用;
- Docker镜像构建;
- Serverless发布;
本项目源码
https://github.com/bestaone/midway-boot
LIVE DEMO
http://midway-boot.hiauth.cn/swagger-ui/index.html
环境准备
- Nodejs 12+
- Npm 8+
- MySql 5+
- Redis
开发工具
我们这里使用 IntelliJ IDEA
下载地址:https://www.jetbrains.com/zh-cn/idea/download
安装数据库
略…
安装Redis
略…
第一个midway项目
初始化创建
>npm init midway
讯享网
- 执行命令后,需要选择模板,标准项目需要选择:koa-v3;
- 项目名可以自定义(我这里设置为midway-boot);
启动
讯享网>cd midway-boot >npm run dev
启动后浏览器访问:http://127.0.0.1:7001
调整ESLint配置
为了保证代码分隔统一,我们调整下ESLint配置
// .prettierrc.js module.exports = {
...require('mwts/.prettierrc.json'), endOfLine: "lf", // 换行符使用 lf printWidth: 120, // 一行最多 120 字符 proseWrap: "preserve", // 使用默认的折行标准 semi: true, // 行尾需要有分号 }
在windows中代码的首行、尾行不能有空行,否则ESLint提示格式错误,可能是bug。
项目结构介绍
讯享网├─src # 源码目录 │ ├─config # 配置 │ ├─controller # 控制器 │ ├─entity # 数据对象模型 │ ├─filter # 过滤器 │ ├─middleware # 中间件 │ ├─service # 服务类 │ ├─configurations.ts # 服务生命周期管理及配置 │ └─interface.ts # 接口定义 ├─test # 测试类目录 ├─bootstrap.js # 启动入口 ├─package.json # 包管理配置 ├─tsconfig.json # TypeScript 编译配置文件
增删改查
ORM组件:TypeORM
TypeORM是Object Relation Mapping工具,提供的数据库操作能力。
安装依赖
>npm i @midwayjs/orm@3 typeorm --save
安装完后package.json文件中会多出如下配置
讯享网{
"dependencies": {
"@midwayjs/orm": "^3.3.6", "typeorm": "^0.3.7" } }
引入组件
在src/configuration.ts中引入 orm 组件
// configuration.ts import {
Configuration, App } from '@midwayjs/decorator'; import * as koa from '@midwayjs/koa'; import * as validate from '@midwayjs/validate'; import * as info from '@midwayjs/info'; import {
join } from 'path'; import {
ReportMiddleware } from './middleware/report.middleware'; import * as orm from '@midwayjs/orm'; @Configuration({
imports: [ orm, // 引入orm组件 koa, validate, {
component: info, enabledEnvironment: ['local'], }, ], importConfigs: [join(__dirname, './config')], }) export class ContainerLifeCycle {
@App() app: koa.Application; async onReady() {
this.app.useMiddleware([ReportMiddleware]); } }
添加数据库配置
修改配置src/config/config.default.ts
讯享网// src/config/config.default.ts import {
MidwayConfig } from '@midwayjs/core'; export default {
keys: '14_9253', koa: {
port:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/56278.html