实现动态表单 需求背景 项目是一个电商类站点。 售卖的商品都是虚拟化物品或服务。 当用户在购买站点售卖商品时,需要填写一些信息。 而根据商品类目的不同,所需要填写的信息也会有所不同。 比如在商品类目 A,用户需要填写邮箱,名称即可。 而在商品类目 B,用户需要填写邮箱,平台,平台账号,平台密码等信息。 随着商品类 2025-04-01 实践 #前端#javascript
函数式编程的 Monad Monad 是函数式编程中的一种概念,它为数据提供了一种结构化的处理方式。 简单来说就是封装一组方法给传入数据使用,但与对象不同,Monad 是不可变的,每次进行修改都会返回一个新的 Monad。 在函数式编程中,我们通常需要避免副作用。但在一些常见的,例如网络请求,输入输出和文件读写等场景,网络会 2025-03-21 编程 #编程#软件开发#设计思想
从零开始实现一个 NestJS - 路由守卫 本系列的相关代码存放于 InkSha/expressive: 一个简易的仿造 Nest.js 的 NodeJS 后台框架。 本节,我们将实现路由守卫功能。 以下是一个用于进行 token 验证的守卫: import { BadRequestException, Guard } from '@expr 2025-02-27 实践 #设计思想#后端#typescript#框架
从零开始实现一个 NestJS - 管道 本系列的相关代码存放于 InkSha/expressive: 一个简易的仿造 Nest.js 的 NodeJS 后台框架。 简单来说就是充当将数据从 A 传递到 B 的一个媒介。 而我们可以在这个传递过程中,对数据进行一些处理。 以下是一个简单的将数据转换为数字的管道。 export class T 2025-02-27 实践 #后端#typescript#框架#设计思想
从零开始实现一个 NestJS - 中间件 本系列的相关代码存放于 InkSha/expressive: 一个简易的仿造 Nest.js 的 NodeJS 后台框架。 本节,我们将实现中间件功能。 以下是一个用于打印请求的中间件例子。 import { Middleware } from '@expressive/common' import 2025-02-27 实践 #设计思想#后端#typescript#框架
从零开始实现一个 NestJS - 配置管理 本系列的相关代码存放于 InkSha/expressive: 一个简易的仿造 Nest.js 的 NodeJS 后台框架。 这里使用到了 dotenv 库。 大体内容如下: import { config } from "dotenv" import fs from "node:fs" import 2025-02-27 实践 #设计思想#框架#typescript#后端
从零开始实现一个 NestJS - 数据传输 本系列的相关代码存放于 InkSha/expressive: 一个简易的仿造 Nest.js 的 NodeJS 后台框架。 DTO 全称为 Data Transfer Object (数据传输对象)。 通常用于在不同的系统、层或服务之间传递数据。DTO 主要用于 封装数据,它不包含任何业务逻辑,主要 2025-02-27 实践 #设计思想#typescript#后端#框架
从零开始实现一个 NestJS - 模块化 本系列的相关代码存放于 InkSha/expressive: 一个简易的仿造 Nest.js 的 NodeJS 后台框架。 通常情况下,为了方便维护和开发,我们会根据业务将代码进行模块化拆分。 分别建立 tags, group, user, article 四个模块。每个模块都包含一个 contro 2025-02-27 实践 #设计思想#后端#typescript#框架
从零开始实现一个 NestJS - 实现提供者 本系列的相关代码存放于 InkSha/expressive: 一个简易的仿造 Nest.js 的 NodeJS 后台框架。 @Injectable() class AppService { private _count: number = 0 constructor() { con 2025-02-27 实践 #设计思想#typescript#后端#框架
从零开始实现一个 NestJS - 实现控制器 本系列的相关代码存放于 InkSha/expressive: 一个简易的仿造 Nest.js 的 NodeJS 后台框架。 在这一环节,将实现一个路由控制器。 将实现: 路由前缀定义 子路由路径定义 子路由方法定义 路由参数传递 设置状态码 控制器示例 // 定义 user 前缀 @Controll 2025-02-27 实践 #框架#typescript#后端#设计思想