المهارات Azure PostgreSQL for TypeScript (node-postgres)
📦

Azure PostgreSQL for TypeScript (node-postgres)

آمن 🔑 متغيرات البيئة

使用企业级安全将 TypeScript 应用连接到 Azure PostgreSQL

构建生产级应用程序需要安全、可扩展的数据库连接。本技能提供完整的 Azure PostgreSQL 模式,包括连接池、事务和无密码 Microsoft Entra ID 身份验证。

يدعم: Claude Codex Code(CC)
🥉 72 برونزي
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "Azure PostgreSQL for TypeScript (node-postgres)". 用户请求基础 PostgreSQL 连接设置

النتيجة المتوقعة:

提供完整的 TypeScript 代码示例,展示使用环境变量的 Client 初始化、SSL 配置、连接建立、查询执行,以及在 try/finally 块中的适当连接清理。

استخدام "Azure PostgreSQL for TypeScript (node-postgres)". 用户需要生产环境的连接池

النتيجة المتوقعة:

提供带有生产设置的 Pool 配置,包括最大 20 个连接、30 秒空闲超时、查询执行示例、显式客户端检出用于多个查询,以及适当的释放模式。

استخدام "Azure PostgreSQL for TypeScript (node-postgres)". 用户想要无密码 Entra ID 身份验证

النتيجة المتوقعة:

展示 DefaultAzureCredential 设置、PostgreSQL 资源的令牌获取、在客户端配置中使用令牌作为密码,以及用于在过期前自动刷新令牌的包装类。

التدقيق الأمني

آمن
v1 • 2/25/2026

This is a prompt-only skill containing documentation and code examples for Azure PostgreSQL connections. Static analysis scanned 0 files with 0 code lines since the skill only contains a SKILL.md documentation file. No executable code patterns, external commands, network calls, or dangerous operations were detected. The skill provides educational content about secure database connection practices including parameterized queries, SSL configuration, and proper credential handling.

0
الملفات التي تم فحصها
0
الأسطر التي تم تحليلها
1
النتائج
1
إجمالي عمليات التدقيق

عوامل الخطر

🔑 متغيرات البيئة (1)
تم تدقيقه بواسطة: claude

درجة الجودة

38
الهندسة المعمارية
100
قابلية الصيانة
87
المحتوى
50
المجتمع
100
الأمان
74
الامتثال للمواصفات

ماذا يمكنك بناءه

生产 API 后端

构建具有连接池的可扩展后端服务,高效处理并发数据库请求和自动连接管理。

企业级安全应用

使用 Microsoft Entra ID 托管标识实现无密码数据库身份验证,增强安全合规性。

数据密集型应用

通过事务支持执行复杂的多语句操作,确保数据一致性和完整性。

جرّب هذه الموجهات

基础 PostgreSQL 连接
展示如何使用 pg 客户端通过密码身份验证和启用 SSL 从 TypeScript 连接到 Azure PostgreSQL。
连接池配置
为 Azure PostgreSQL 创建连接池,包含生产环境的适当配置,包括最大连接数、空闲超时和连接超时设置。
Microsoft Entra ID 身份验证
展示如何使用 Microsoft Entra ID 托管标识实现无密码身份验证到 Azure PostgreSQL,包含自动令牌刷新。
带有错误处理的事务
创建一个事务辅助函数,封装带有 BEGIN、COMMIT 和 ROLLBACK 逻辑的数据库操作,包括适当的错误处理和连接释放。

أفضل الممارسات

  • 始终使用参数化查询而不是字符串拼接,以防止 SQL 注入漏洞
  • 生产应用使用连接池而不是单个连接,以提高性能和资源利用率
  • 为所有 Azure PostgreSQL 连接启用 SSL 并将 rejectUnauthorized 设置为 true,以确保加密通信

تجنب

  • 切勿将用户输入直接拼接到 SQL 查询中 - 始终使用带有占位符的参数化查询
  • 避免为每个查询创建新的 Client 实例 - 这会耗尽数据库连接并降低性能
  • 使用 Entra ID 身份验证时不要跳过令牌刷新逻辑 - 令牌在大约一小时后过期

الأسئلة المتكررة

node-postgres 中 Client 和 Pool 有什么区别?
Client 代表单个数据库连接,适用于简单脚本。Pool 管理多个连接,自动处理并发请求的检出和释放,使其成为生产应用的理想选择。
如何处理 Microsoft Entra ID 令牌过期?
实现一个包装类,跟踪令牌过期时间并在过期前 5 分钟获取新令牌。提供的 AzurePostgresPool 类自动演示了此模式。
为什么 Azure PostgreSQL 要求 SSL 并将 rejectUnauthorized 设置为 true?
Azure 强制执行加密连接以确保安全。将 rejectUnauthorized 设置为 true 可验证服务器证书,防止中间人攻击。
我应该为 Azure PostgreSQL 使用多大的池大小?
中等工作负载从最大 20 个连接开始。根据您的 Azure 层级的连接限制进行调整,并监控 pool.waitingCount 以检测连接何时耗尽。
如何高效地为多个参数集运行相同的查询?
对单个查询使用 pool.query(),对多个相关查询使用 pool.connect() 检出客户端。始终在 finally 块中使用 client.release() 将客户端释放回池。
我可以将此技能用于非 Azure 托管的 PostgreSQL 服务器吗?
是的,核心 pg 包适用于任何 PostgreSQL 服务器。但是,Microsoft Entra ID 身份验证和一些 Azure 特定配置仅适用于 Azure Database for PostgreSQL。

تفاصيل المطور

المؤلف

sickn33

الترخيص

MIT

مرجع

main

بنية الملفات

📄 SKILL.md