shubuzuo
shubuzuo

述而不作

All Posts in 2024.7


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

因明入正理论 立论梳理

这篇文章详细探讨了因明学中论议的方法与原则,包括立论的基本要素(宗、因、喻、合、结)、论议可能出现的负处及其具体表现形式,以及如何通过三种观察方法来决定是否展开论议。文章还讨论了在论议过程中需要具备的多所作法,如善自他宗、勇猛无畏和辩才无竭等素质,以确保论议能够顺利进行并达到预期效果。--DeepSeek

zhongzhe study weishi 2024 logic debate

丐版 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