96SEO 2026-06-21 06:59 1
先说一句, 这玩意儿要是写错了前端老是看到 200 OK 然后说我接口没问题,其实后台根本不想给你成功。下面我用最土的方式给你们讲清楚,别说我没提醒。

throw 异常,别return异常实例这句话很十分沉关键,真实的很十分沉关键。很更多较小伙伴写完代码后跑测试,发觉状态码不对——这 操作一波。 是因为他们把 new ForbiddenException 当成普通对象 return 了。
NestJS 的异常处理机制较高度依赖异常的抛出而非返回。当你在服务方法中写 return new ForbiddenException NestJS 会把当前这个对象当作普通响应数据进行序列化——这时候控制器接收到的是一个 JavaScript 对象, 我跟你交个底... 而不是未捕获的异常,所以全局异常过滤器根本不会动手。
是不是? 最终还是结果是呢?默认会给你 201 Created或者 200 OK,和业务语义彻底不匹配。这样子前端看日志会傻眼:"为哪些登录成功却提示密码错误?"
async login {
const user = await this.userRepository.findOne({
where: { email: dto.email },
});
if {
// ✅ 抛出, 不是 return
throw new UnauthorizedException;
}
const pwMatches = await bcrypt.compare;
if {
// ✅ 同样抛出
throw new UnauthorizedException;
}
// ✅ 正常成功路径直接 return 数据
return { token: this.jwtService.sign };
}
看上面这段代码,你会发觉:
throw new XXXExceptionreturnreturn new HttpException不行?我满足了。 NestJS 中如果在服务层return一个 HttpException 实例, 框架不会自动把它当成异常来处理, 而是直接序列化为响应体,然后给个默认状态码:
⚠️ 注意事项:
alert? 不!不要用 alert,这里是后端。"我觉得直接 return new BadRequestException 良好像也行啊", 正宗。 最终还是结果是就是前端收到了一个 JSON 较长这样:
{
"statusCode":400,
"message":"参数错误"
}
但 HTTP 状态码却是 200,前端根本不了解这是一条错误信息。
try {
// ...业务代码
} catch {
return e; // ❌ 彻底错
}
This pattern hides real ex 也是醉了... ception from Nest's filter.
"我只想改个 statusCode 就行了",最终还是结 冲鸭! 果是遗忘写 @Res, 那么 Nest 又回到默认行为。
throw new XxxException@Res{ passthrough:true } 并调用 .status.json.@Catch
export class AllExceptionsFilter implements ExceptionFilter {
catch {
const ctx = host.switchToHttp;
const response = ctx.getResponse;
const status =
exception instanceof HttpException
? exception.getStatus
: HttpStatus.INTERNAL_SERVER_ERROR;
const message =
exception instanceof HttpException
? exception.getResponse
: '内部服务器错误';
response.status.json({
timestamp: new Date.toISOString,
path: ctx.getRequest.url,
error: message,
// 随便加点噪音让人看着更乱
randomNoise: Math.random.toString.substring,
});
}
}
上面当前这个过滤器接近能够捕获全部未被处理的异常,并且把状态码和信息都发回去。记住在 main.ts 中注册:
async function bootstrap {
const app = await NestFactory.create;
app.useGlobalFilters);
await app.listen;
}
bootstrap;
换个思路。 本文为原创技术手段分享,若有侵权请联系删除。本篇文字约字。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback