我在使用 Express APIs 时犯过的 5 个生产环境错误

API 崩溃并不是因为代码复杂。

它们崩溃是因为你忽略了那些枯燥的细节。

我从真实的生产环境错误中吸取了这五个教训。

  1. 及早验证数据

我以前习惯在业务逻辑内部验证数据。这导致 Bug 出现时已经远离了源头。

现在我会立即拦截错误的请求。

如果请求缺少有效的电子邮件,立即返回 400 错误。不要让错误的数据进入你的核心逻辑。

  1. 使用具体的错误代码

通用的 500 错误对谁都没有帮助。

如果 API key 失效,返回 401 错误。如果用户余额不足,返回 402 错误。

如果你需要在 Slack 上解释一个错误,说明你的 API 消息设计失败了。

  1. 检查中间件顺序

我曾花了好几个小时调试身份验证问题。结果问题仅仅出在中间件的顺序上。

请遵循以下顺序:

一行写错就会导致全局崩溃。

  1. 记录正确的数据

我尝试过很多日志记录风格。大多数都毫无用处。

对于标准追踪,记录 method、path 和 status code。

对于错误,记录 request ID、错误信息和 stack trace。

当你在凌晨 3 点醒来时,除此之外的一切都是噪音。

  1. 设置速率限制

我曾眼睁睁看着一个端点被疯狂调用,导致产生了实际的费用支出。

没有限制的 API 只能寄希望于运气。而“希望”并不是一种安全策略。

使用 express-rate-limit 来保护你的服务器。

大多数 API 故障都源于忽视基础。

生产环境不在乎你的计划。它只在乎你的配置。

来源:https://dev.to/manolito99/5-production-mistakes-that-changed-how-i-build-express-apis-133e