从零开始实现一个 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#后端#设计思想
从零开始实现一个 NestJS - 元数据 尽管在 tsconfig.json 中已经启用了元数据。 但还是要引入 reflect-metadata 这个库。 // 入口文件 main.ts import 'reflect-metadata' 此外,还需要声明一些 token 作为绑定的元数据的 key。 // token.ts expor 2025-02-27 实践 #设计思想#框架#后端#typescript
从零开始实现一个 NestJS - 前言 从现在开始,我将实现一个简单的 NestJS。 用于学习 IoC (Inversion of Control 控制反转) 和 DI (Dependency Injection 依赖注入) 思想。 传统开发时,一切对象都由开发者手动创建,需要什么就 new 什么。并不通过中间者。 而 IoC 是一种设 2025-02-27 实践 #设计思想#后端#typescript#框架
使用 Worker 实现发版通知 目前的站点发版是由开发人员自己操作,运营人员通常需要等待开发人员完成发版后才知道进行了发版。 这就导致了如果开发人员在发版后如果忘记了通知运营人员,运营人员就无法知道网站进行了发版。为了解决这个问题,我们使用了 webhook 来实现发版通知。 当我们进行网站发版的时候,会触发一个 webhook, 2025-02-22 实践 #软件开发#配置#工具
在 React 中如何不依赖 state 获取表单数据 最近在弄一个选项面板,采用了一种不依赖 React state 来管理表单数据的新设计。 该设计基于 HTML 原生表单行为,通过配置表单元素的 name 属性,借助浏览器自动的数据收集机制,实现了一个灵活且高效的选项面板。运营人员可以轻松地配置和组合选项,设置选项间的关联条件(例如:选中选项 A 2025-02-21 实践 #前端#javascript#设计思想#心得