You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js Express设置404状态码失败:兜底路由仍返回200问题求解

问题原因

你的代码存在两个核心错误,导致404状态码没有生效:

  1. API调用位置错误
    你把状态码设置方法接在了app.get()的返回值后,而app.get()返回的是Express实例对象,不是HTTP响应对象res,所以这行代码的状态设置逻辑根本没有作用到要返回的响应上。
  2. API名称错误
    Express中设置响应状态码的方法是status(),不存在code()这个方法,你调用的方法本身就是无效的。
修复方案

将第15行的代码修改为如下写法即可:

app.get("*", (req, res) => res.status(404).sendFile(errpage));

注意:你第10行的res.sendfile(skull)也需要注意大小写,Express 4及以上版本正确的方法名是sendFile(首字母大写),小写写法属于旧版遗留API,可能触发警告甚至运行异常,建议同步修改。

补充说明

响应状态码是HTTP响应的属性,必须在返回响应内容之前,通过响应对象res的对应方法设置才能生效。你原来的写法相当于在路由注册完成后尝试调用Express实例上不存在的code()方法,运行时本身就会抛出异常,你可以检查下服务启动后的控制台日志确认相关报错信息。

内容的提问来源于stack exchange,提问作者user15845993

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 00:15:02