shubuzuo
shubuzuo

述而不作

work


mongoose 类型问题

在使用 `NestJS/Mongoose` 进行系统重构时,作者遇到了一些与 `Mongoose` 类型相关的问题。具体来说,在构建查询过滤器时,期望能够通过类型检查来限制和约束过滤条件的字段类型,但在实际代码中发现并没有严格的类型限制,甚至可以随意添加不存在的字段而不引发编译错误。 使用 `TypeScript` 的一个重要目的就是通过静态类型检查减少编码错误,提高开发效率。然而在构建查询条件这一重要环节上,无论是 `NestJS/Mongoose` 还是之前的 `Typegoose` 实现,都未能提供令人满意的类型安全性和约束能力。这引发了对当前ORM选择的思考:是否需要更换ORM框架?比如 `Prisma` 是否能解决这个问题?或者继续使用 `TypeOrm` 但接受其在 MongoDB 支持上的局限性? 核心问题其实源于 `Mongoose` 本身的类型处理机制。作者认为,尽管可以通过调整 ORM 框架来改善体验,但在根本上这仍然是一个需要面对的技术挑战。 那么你是否也在使用 `Mongoose` 或其他 ORM 遇到了类似的类型安全问题?你会如何权衡框架的便利性与开发体验的重要性?又会选择哪一种解决方案来实现更好的类型安全保障呢?这些问题值得每一位开发者深入思考。--DeepSeek

study work 2024 mongoose orm typescript

nginx 密码套件安全排查

这篇文章记录了一次针对Nginx密码套件安全问题的排查过程,从使用nmap工具扫描发现安全隐患开始,到逐步定位问题根源的过程进行了详细描述。文章首先介绍了通过nmap脚本嗅探HTTP服务器密码套件的方法,并讨论了这些套件的安全性。随后,作者尝试通过配置Nginx启用TLS 1.3并禁用TLS 1.2来解决问题,但发现安全漏洞仍然存在。 在排查过程中,作者逐渐意识到问题可能出在Nginx之前的中间件上,尽管初期并未明确具体是哪种产品,但最终锁定为Web应用防火墙(WAF)配置不当导致的问题。文章还反思了整个排查过程中的经验教训,强调了系统化排查的重要性,并对运维人员的沟通效率提出了批评。 这篇文章不仅揭示了一个实际的安全问题解决案例,还引发了关于服务器安全配置、中间件影响以及团队协作等方面的思考。通过这个故事,读者可以了解到在面对复杂安全问题时如何逐步缩小范围,找到根本原因的方法。同时,它也提醒我们在安全管理中要注意各个组件之间的相互作用,避免因单一环节的疏忽导致整体安全性下降。 最后,这篇文章提出了一些值得深思的问题:Nginx的安全配置是否真的生效?中间件的影响如何评估?安全测试与实际运行环境的一致性如何保证?这些问题都值得读者在阅读后进一步探讨和实践。--DeepSeek

2023 nginx docker centos work security cloud

丐版 mongodb 全文搜索

本文探讨了如何在社区版 MongoDB 上实现中文全文搜索功能,通过结合 NestJS 和 Mongoose 开发环境,详细介绍了从 Docker 部署 MongoDB 环境到技术实现的全过程。文章分析了在没有企业版或 Atlas Search 支持的情况下,如何利用 `@node-rs/jieba` 分词工具完成中文分词处理,并通过回写机制实现搜索功能。文中还讨论了技术选型中的权衡取舍,包括分词算法选择、数据源回写策略以及与 Elasticsearch 的对比等关键问题。文章最后提出了一个值得思考的问题:在现有解决方案的基础上,是否可以通过扩展或优化进一步提升性能和用户体验?--DeepSeek

mongodb study node docker work nest fulltext search

openapi client 生成

本文详细介绍了如何通过特定的包生成优雅的API客户端并与Vue项目集成。文章涵盖了服务端配置、GitHub Actions自动化流程、前端代码封装以及Pinia状态管理等技术细节,并分享了开发过程中遇到的问题和解决方案,强调了整体体验的优雅性。--DeepSeek

study vue github ci-cd work 2024 openapi swagger

umijs 3 升 4

这篇文章记录了一次将 UmiJS 3 升级到 UmiJS 4 的过程,并分享了其中的经验和思考。作者提到升级的主要原因包括提升开发效率、优化项目结构以及引入更严格的工程化检查工具(如 ESLint、Prettier 等)。在实际操作中,作者采取了从新建一个最新 UmiJS 4 项目开始逐步迁移代码的方式,过程中涉及配置文件的替换与调整、依赖包的升级与清理、组件逻辑的重构(例如将类组件改写为函数组件并使用 Hook)等具体步骤。同时,作者也强调了在升级过程中遇到的问题大多通过查阅资料和社区支持得以解决,并提醒未来应边升级边记录以便更好地帮助他人。 文章最后提到,尽管这些具体的升级步骤可能对大部分读者参考价值有限,但从中可以看出 UmiJS 4 在提升开发体验、代码质量和项目结构方面所做的努力。对于正在考虑或准备进行 Umi 升级的开发者来说,这篇文章不仅是对一次实践过程的记录,也为如何高效完成框架升级提供了有价值的思路。 例如,在这次升级中,作者是如何处理与旧版本兼容性问题的?在引入新工具和规则时遇到了哪些挑战?这些问题都值得进一步探讨。--DeepSeek

react ts work 2024 umijs upgrade configuration migration

ventoy ubuntu 24.04 制作

这篇文章介绍了使用 Ventoy 制作 Ubuntu 24.04 安装工具的过程。作者从新主机的选择开始,讲述了选择 Ubuntu 的原因,并详细描述了如何通过 Ventoy 下载并安装 Ubuntu 24.04 的过程。文章中提到了检查 Ventoy 版本与 Ubuntu 新版本的兼容性、下载 ISO 镜像以及升级 Ventoy 的步骤。作者还提醒读者需要注意旧主板或 BIOS 设置可能导致的问题,并提供了 Ventoy 官方测试地址以供参考。通过这篇文章,读者可以了解到如何轻松使用 Ventoy 制作安装工具,并在过程中避免一些潜在问题。你是否也在考虑尝试新版本的 Ubuntu?或者你对 Ventoy 的兼容性有什么特别的经验吗?不妨继续阅读,看看作者是如何一步步完成安装并解决可能遇到的问题的。你的旧主板是否能流畅支持 Ventoy 安装呢?--DeepSeek

study ubuntu daily work Operating System Installation Ventoy

新系统预装软件记录

这篇文章记录了一位用户在新主机上预装软件及环境的经验与清单,涵盖了Windows和Ubuntu两大操作系统。在Windows系统中,作者列出了包括VSCode-Insiders、Choco等开发工具,以及Edge、VLC等日常使用的软件;而在Ubuntu系统中,则主要介绍了跨平台兼容的开发工具和一些常用的开源软件。文章还提到了一些私有云盘同步配置和常用资源设置,例如docker镜像源和SSH代理转发配置。这篇文章不仅为读者提供了一份详细的预装软件清单,还分享了一些实用的配置经验,帮助读者在新系统环境中快速搭建工作环境。如果你正在准备搭建自己的开发环境或对跨平台工具感兴趣,这篇文章可能会为你带来一些启发与便利。你是否也有一份属于自己的预装软件清单?不妨分享一下你的经验和心得!--DeepSeek

study daily work env Software Installation Operating System Setup

  • 1