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

如何配置Express.js实现默认不响应所有未匹配的请求

解决方法

你可以在所有手动配置的路由之后,新增一个全局捕获的中间件,不对请求做任何响应输出即可。

Express 会按从上到下的顺序匹配路由,所有没有命中你手动配置规则的请求,都会进入最后这个全局中间件,你只要不在这个中间件里调用res.send()/res.end()/res.json()等任何响应方法,也不调用next()传递给后续内置中间件,就能实现和原生http模块一致的、不返回任何响应的效果,客户端会一直处于挂起状态直到超时。

修改后的完整示例代码如下:

const express = require("express");
const app = express();
const port = 8080;

// 你手动配置的路由
app.get("/", (req, res) => {
    res.status(200).send("Hello");
});

// 全局捕获所有未匹配的请求,必须放在所有自定义路由之后
app.all('*', (req, res) => {
    // 这里可以加你需要的自定义逻辑,比如打印请求日志
    console.log(req);
    // 不要调用任何res响应方法,也不要调用next()
})

app.listen(port, () => {
    console.log(`Example app listening at http://localhost:${port}`);
});

如果需要和你最初的原生http逻辑完全一致,所有请求都只打印日志不返回响应,直接删除所有手动配置的路由,只保留这个app.all('*')中间件即可。

内容的提问来源于stack exchange,提问作者404 Name Not Found

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:06:03