Nest.js 实战 (十五):前后端分离项目部署的最佳实践 8月前查看 评论
Nest.js 实战 (十五):前后端分离项目部署的最佳实践

这篇文章介绍了如何部署一个采用现代前后端技术栈的分离架构项目到生产环境的最佳实践。文章以Nest.js后端和现代前端框架为例,详细描述了从安装依赖、配置数据库、上传代码到服务器,再到配置反向代理的过程。通过设置Node.js运行环境、上传前端文件并解压、配置HTTPS证书以及实现反向代理来转发API请求,最终确保前后端服务能够正常运行并被用户访问。同时,文章还提到了一些常见的部署问题及解决方法。

Nest.js 实战 (十四):如何获取客户端真实 IP 8月前查看 评论
Nest.js 实战 (十四):如何获取客户端真实 IP

这篇文章介绍了在 Nest.js 应用中如何获取客户端的真实 IP 地址。当请求来自本地代理时,直接获取的 IP 地址可能不准确。为了解决这个问题,需要确保代理服务器设置正确的转发头(如 X-Forwarded-For 或 X-Real-IP),并在后端正确读取这些头信息。文章还提供了获取真实 IP 地址的方法,并展示了在登录接口中调用该方法的示例代码。

Nest.js 实战 (十三):实现 SSE 服务端主动向客户端推送消息 9月前查看 评论
Nest.js 实战 (十三):实现 SSE 服务端主动向客户端推送消息

这篇文章介绍了如何在 Nest.js 应用中实现 Server-Sent Events(SSE)技术,用于服务端主动向客户端推送消息。文章以实时通信场景为例,讨论了选择 SSE 技术的原因,因其能满足高效推送和低延迟需求,且更适合服务器向客户端发送更新的场景。接着详细描述了如何通过 @Sse 装饰器和 Event Emitter 实现 SSE 功能,并展示了相关代码片段,包括创建 SSE 连接、监听事件以及处理消息推送的逻辑。

Nest.js 实战 (十二):优雅地使用事件发布/订阅模块 Event Emitter 9月前查看 评论
Nest.js 实战 (十二):优雅地使用事件发布/订阅模块 Event Emitter

这篇文章介绍了如何在 Nest.js 应用中优雅地使用事件发布/订阅模块 Event Emitter。EventEmitter 是一个基于强大库的社区模块,能够简化服务间的通信,使应用更健壮、灵活且易于扩展。文章详细讲解了安装依赖、初始化模块、发布事件以及订阅事件的具体步骤,并展示了在服务中注入 Event Emitter 并使用其方法完成事件的发布与监听的代码示例。

Nest.js 实战 (九):使用拦截器记录用户 CURD 操作日志 10月前查看 评论
Nest.js 实战 (九):使用拦截器记录用户 CURD 操作日志

这篇文章介绍了如何在 Nest.js 中使用拦截器记录用户的 CURD 操作日志。通过实现 NestInterceptor 接口,拦截器可以在函数执行前后附加额外逻辑,如记录操作日志。文章还展示了如何定义日志模型(schema.prisma),包括日志的字段如操作类型、用户 ID、IP 地址等,并通过 OperationLogService 获取请求上下文以保存用户数据。

Nest.js 实战 (七):如何生成 SVG 图形验证码 10月前查看 评论
Nest.js 实战 (七):如何生成 SVG 图形验证码

这篇文章介绍了在 Nest.js 项目中实现生成 SVG 图形验证码的方法。首先通过安装相关依赖,在控制器中导入必要的模块并配置 Swagger 文档注解。接着定义了一个 `getCaptcha` 方法,利用 `svg-captcha` 库生成包含指定长度、字符样式和背景等参数的验证码图片,并通过会话(Session)存储验证码值以便后续登录验证。最后,在客户端登录时可以比对输入的验证码与会话中的值来判断其正确性。

Nest.js 实战 (六):使用 Session 在不同请求间存储信息 10月前查看 评论
Nest.js 实战 (六):使用 Session 在不同请求间存储信息

这篇文章介绍了如何在 Nest.js 中使用 Session 来实现跨请求的信息存储,通过 Express 的 `express-session` 中间件来管理用户会话。文章详细描述了如何配置 Session 参数如 `secret`、`resave` 和 `saveUninitialized`,并在代码中展示了如何通过 `@Req` 和 `@Session` 装饰器来获取和设置会话数据,同时提供了会话数据的增删改查示例,以及销毁会话的方法。