Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on null in /var/www/tgoop/function.php on line 65
2909 - Telegram Web
Telegram Web
#优质博文 #全栈 #course #Express #TypeScript #Node
How To Set Up Express 5 For Production In 2025

AI 摘要:本文从零开始搭建一个生产级别的 Express 5 应用,使用 TypeScript、ESLint + Prettier、Vitest + Supertest 进行规范和测试,展示了如何结构化 Express 项目(分层、按功能归档),如何实现 REST API 的路由、健康检查、日志、CRUD、JWT + cookie 的认证体系,并结合 Prisma + PostgreSQL 构建持久化层。文章采用 TDD(Test-Driven Development)的方法,通过分模块讲解与示例代码,让读者最终完成一个可扩展、可维护的现代 Express 应用。

[以下是方便搜索索引的大纲 (AI 生成),请读原文]
1. 项目初始化与基础配置
• 使用 npm 初始化 Express + TypeScript 项目
• 配置 tsconfig.json 以启用严格模式和 ES Module
• 运行脚本 (build、start、dev) 设置

2. 代码规范与开发工具
• ESLint、Prettier 用于一致性和规范化
• 配置 lint 规则,包括 unicorn、simple-import-sort
• 添加格式化和修复脚本

3. 测试驱动开发 (TDD)
• 使用 Vitest + Supertest 写单元测试和集成测试
• 初始化 Vitest 配置(Node 环境)
• 实现第一个健康检查 (health-check) 测试 → 控制器 → 路由

4. 架构拆分与中间件
• 将 app.ts 与 server.ts 分离
• 使用 morgan 日志中间件
• 功能分组 (features) + MVC 模式 (无 view 层)
• 编写自定义 asyncHandler 简化 error 处理

5. 数据库与数据层 (Prisma + PostgreSQL)
• 初始化 Prisma schema
• 使用 UserProfile 模型
• 实现数据库连接与 PrismaClient 管理
• Facade 模式封装数据库 CRUD

6. 测试数据与校验
• 使用 Factory Functions 快速生成模拟数据
• 使用 Zod 校验 body / query / params
• 对比 express-validator 的类型推断问题

7. 认证与授权 (Authentication & Authorization)
• 集成 cookie-parser 用于读取 cookies
• 使用 JWT + bcrypt 实现登录 / 注册 / 登出
• setJwtCookie、clearJwtCookie、getJwtTokenFromCookie helpers
• Middleware requireAuthentication 实现受保护路由

8. 用户功能与 REST API CRUD
• /user-profiles 列表(带分页)测试与实现
• 单条获取 (GET by ID)、更新 (PATCH)、删除 (DELETE) 的 TDD 流程
• 考虑异常处理:404、400、409
• 自定义 getErrorMessage 工具统一报错输出

9. 项目结构与总结
• 最终应用结构清晰:src/features/*
• Express + TypeScript 项目的完整生产级最佳实践
• 扩展性强,可直接应用于实际开发


author Jan Hesters
#碎碎念
因为各种原因备了份之后,升级了 macOS 26……
这玩意每次唤出来都肉眼可见的卡一下好难受,还有这个 chrome 图标风格怎么看怎么不顺眼,唉。

然后扬声器开始偶尔会爆杂音了……好像说是老毛病了,问了下同事竟然有个同事一直都这样,找好几次售后都没好,解决办法是带耳机了……

https://www.mobile01.com/topicdetail.php?f=481&t=6585977

最后我在我的电脑上是 sudo killall coreaudiod 解决了,那应该是软件问题,但过一阵子又会偶发,目前除了这个大问题倒还没有别的槽点(设计上的槽点就不提了)
#优质博文 #npm #供应链攻击 #安全
太离谱了……
实时更新:Shai-Hulud——史上最危险的NPM漏洞,影响CrowdStrike及数百个流行软件包

AI 摘要:文章报道了 2025 年 9 月爆发的 Shai-Hulud 恶意软件攻击,被认为是史上最大规模、最危险的 NPM 供应链攻击,已波及 CrowdStrike 及数百个流行 JavaScript 包。攻击者通过在维护者的包中注入恶意脚本(bundle.js)进行秘密凭据窃取和持久化后门植入,利用自动化工作流在 CI/CD 环境中持续外泄密钥。文中详细给出已确认被攻击的包清单、潜在影响范围及防护建议,包括立即停更、扫描环境、凭据轮换与审计 GitHub 工作流。


[以下是方便搜索索引的大纲(AI 生成),请读原文]
1. 攻击背景与规模
• Shai-Hulud 是迄今为止最严重的 NPM 供应链攻击
• 影响范围涵盖高人气的 @ctrl/tinycolor、CrowdStrike 官方包及数百个开源组件
• 恶意代码可自动触发,扩大横向传播

2. 攻击技术与机制
• 注入 bundle.js 脚本,在安装包时执行
• 使用 TruffleHog 扫描本地文件和代码库中的密钥(npm、GitHub、AWS、GCP、Azure 等)
• 创建隐藏的 GitHub Actions 工作流文件(shai-hulud-workflow.yml),用于在 CI/CD 阶段外泄凭据
• 双重目标:密钥窃取 + 持久后门部署

3. 影响与风险评估
• 大量开发者环境(本地 + 云端)已可能泄露敏感凭据
• 攻击持续性强,即便删除恶意包后,持久化机制仍可能存活
• 企业级安全厂商 CrowdStrike 受影响,进一步放大危机

4. 应对建议与缓解措施
• 立即扫描所有终端与构建环境,确认是否安装受影响包
• 暂时冻结 npm 包的更新,避免进一步扩散
• 轮换全部相关凭据(GitHub、npm、AWS、GCP、Azure 等)
• 审计 GitHub 工作流,排查 shai-hulud-workflow.yml 等异常文件
• 对流程与自动化管道进行全面安全加固


author Idan Dardikman,Yuval Ronen
#优质博文 #CSS #前端 #新特性
What Can We Actually Do With corner-shape?

AI 摘要:本文介绍了 CSS 最新属性 corner-shape 的多种应用方式,它可以与 border-radius 配合,突破传统圆角与直角的限制,实现斜切、箭头、提示框、手绘风格、squircle(方圆形)等复杂的 UI 效果。目前仅 Chrome 139+ 支持,文章通过丰富实例展示其潜在的设计与交互价值。


author Daniel Schwarz
👍1
#优质博文 #CSS #前端 #新特性
被低估的 linear() 函数 linear() 函数如何使用?了解下 linear() 函数的原理

AI 摘要:本文深入探讨了 CSS 新增的 linear() 函数,它突破 cubic-bezier() 的局限,能通过多个参数点实现复杂的分段线性动画,具有极高的可控性。作者还介绍了工具生成 linear() 代码的方法、与其他缓动函数的对比,以及实际应用场景,总结 linear() 在动画设计中的价值和独特作用。


author zhangxinxu
#碎碎念
跟妹妹的聊天唤起了我大学的时候选修桥牌的回忆
已击杀妹妹一只(x)
#优质博文 #AI #MCP #新动态 #开源
GitHub 推出官方 MCP Registry,统一入口快速发现和使用 MCP servers。
Meet the GitHub MCP Registry: The fastest way to discover MCP Servers

AI 摘要:本文介绍 GitHub 推出的 MCP Registry,旨在解决以往 MCP servers 分散、难以发现和管理的问题。通过集中托管与社区协作,开发者可以在一个统一平台上更快找到所需工具,与 GitHub Copilot、VS Code 等生态无缝集成。文章强调该平台对开放互操作标准的贡献,以及合作伙伴(如 Figma、Postman、HashiCorp、Dynatrace 等)所带来的典型应用场景,展示 MCP Registry 在推动 agentic workflows 与 AI 生态健康发展的重要性。
#碎碎念 #面
闪击上海之 Pycon,面了小音和好 hr()
得到了 saka 的签名,两个尸体暖暖的。
saka 老师老师,我下辈子不用 Next.js 了🥺
5
#优质博文 #css #webkit #ios #前端 #CSS
Apple has a private CSS property to add Liquid Glass effects to web content

AI 摘要:作者在研究 WebKit 更新日志时发现 Apple 正在引入一个私有 CSS 属性 -apple-visual-effect,它可以让 Web 内容利用 Liquid Glass 效果。虽然该功能目前既不能在 Safari 上使用,也无法通过常规 WKWebView 使用,除非启用私有设置 useSystemAppearance,因此开发者不能直接用于 App Store 应用。但这一变化揭示:Apple 自己已经在内部使用该功能,说明 webview 在系统应用中的整合比用户意识到的更深入,印证了所谓 “The Toupée Theory of In-App Webviews” —— 好的 webview 被无感知地使用,坏的才被用户注意。


author Alastair Coote
#优质博文 #前端 #跨端
Lynx 3.4 正式发布

AI 摘要:Lynx 3.4 按计划完成双月更新,带来 HarmonyOS 与 Windows 环境支持,推出 TraceRecorder 开发者工具,新增 <input> 与 <textarea> 核心组件,同时改进 <list> 回收策略、动画控制与可变字体支持。这些升级旨在提升开发灵活性、渲染性能及多端兼容性,为开发者带来更完善的跨平台体验。


author Lynx 团队
#Newsletter #react #javascript #css #前端
React Status Issue 444: September 17, 2025

AI 摘要:本期 React Status 报导了一个与 useEffect 使用不当导致 Cloudflare 仪表盘宕机的案例,提醒开发者谨慎处理副作用;同时探讨了控制 package.json 依赖膨胀的技巧;介绍了 AI 辅助的终端代码审查工具 CodeRabbit CLI;并整理了近期前端生态的更新,包括 React Canary 新特性、pnpm 安全机制、Expo 54 改进、TanStack 工具集更新,以及 JavaScript 社区内围绕 npm 供应链攻击、Safari 26.0 发布和 Bun 1.2.22 发布等动态。
#优质博文 #科研工具 #AI #文献管理 #学术搜索
WisPaper:搜、问、读,陪你一起搞科研的专业Agent

AI 摘要:WisPaper是复旦大学研发的一款免费AI学术工具,旨在帮助科研人员解决文献检索和阅读难题。它提供AI智能搜索功能,能精准查找海外权威期刊,并支持本地文件库的智能搜索。此外,WisPaper还能进行文献深度对话、精准翻译以及一键提炼文献核心论点、研究方法和关键结论,显著提高科研效率。

author 小众软件
#优质博文 #前端 #CSS #SVG #性能优化 #动画
Replace Your Animated GIFs with SVGs

AI 摘要:文章介绍了使用 SVG 动画 作为 GIF 动画 替代方案的优势。与 GIF 相比,SVG 动画文件体积更小、分辨率无损放大、与部分 CSS 媒体查询兼容,还可以直接嵌入 img 标签或作为背景图使用。但也存在局限:如不支持 prefers-reduced-motion、无法触发交互事件(hover/click)、限制 JavaScript 等。整体上,SVG 动画是 GIF 的现代替代,尤其适用于形状移动或变换类动画,性能和画质优势明显。


author John Rhea
#优质博文 #CSS #新特性 #前端
非常全的 CSS 新特性合集。
你需要知道的现代 CSS(2025版

AI 摘要:本文梳理了 2025 年现代 CSS 的最新进展,包括动画到 auto、@function、if()、text-wrap、linear() easing、 shape()、增强的 attr()、reading-flow 等特性。这些新功能大多提升了样式抽象能力、响应式设计的灵活性和排版的可控性,同时展现了 Chrome 为主、Safari/Firefox 跟进的支持现状,并给出 Polyfill 和渐进增强的可行性建议。


[以下是方便搜索索引的大纲(AI 生成),请读原文]
1. 动画与尺寸控制
- Animate to Auto:首度支持从固定数值过渡到 `auto`、`min-content` 等关键字,解决了长久以来无法动画到内在高度的问题。
- field-sizing:表单元素可根据内容自动扩展,高度自适应不再依赖 JS。

2. HTML 与交互增强
- Popovers & Invokers:新增 `popover` 和 `invoker` 属性,原生支持弹出层及控制呼叫,提升可访问性与无 JS 支持的友好性。
- Custom Selects:允许开发者完全自定义 `<select>` 的 UI,不再局限于操作系统原生样式。

3. 函数与逻辑能力
- @function:允许开发者在 CSS 内自定义函数,提升逻辑复用与避免重复代码。
- if():原生条件语法,类似 `switch`,用于条件性的样式应用。
- linear() easing:支持更复杂的动画缓动效果,可实现多点定义的动态曲线,而非仅限于 `cubic-bezier()`。
- shape():改良版路径函数,用 CSS 单位定义 `clip-path`、`offset-path` 等,实现复杂图形与路径动画。
- random()(预览特性):Safari 已支持,用于随机化样式值(实验性)。

4. 属性与排版优化
- text-wrap:新增 `balance`、`pretty`,提升文字换行的美观性与可读性,特别优化标题与段落排版。
- 增强的 attr():可将 HTML 属性值解析为数字、颜色等数据类型,提升数据驱动的 CSS 表达能力。
- reading-flow:重新映射视觉顺序与键盘导航顺序,避免因布局重排导致的 Tab 键焦点错乱。

5. 值得关注的趋势
- Masonry 布局:提案逐步接近规范化,用于实现瀑布流布局。
- margin-trim:Safari 首发,期待跨浏览器可用。
- sibling-index() / sibling-count():有助于顺序动画和灵活选择。
- View Transitions:Firefox 正在实现,进一步统一页面过渡体验。
- calc() 扩展:将支持单位间的乘除运算。

6. 经典与延续
- Container queries / container units:继承 `media queries` 的伟大进步。
- :has() 伪类:极大强化选择器能力。
- 滚动驱动动画 / Anchor Positioning / View Transition:现代 CSS 交互特性逐步进入主流支持。
- 额外视口单位(如 dvh) 已进入 baseline。


author Chris Coyier
2025/10/23 17:09:02
Back to Top
HTML Embed Code: