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

如何存储或获取搜索到的无效路由?附Express路由变量存储问询

如何存储/获取访问的无效路由(Express 场景)

在 Express 框架中,你可以通过请求对象的 req.path 属性直接获取到当前访问的无效路由(也就是通配符 * 匹配到的路径),然后根据需求将其存储到变量、数组或持久化存储中。

基础实现:将路由保存到变量/数组

如果只是临时收集无效路由记录,可参考以下代码:

// 全局定义数组用于存储无效路由
const invalidRoutes = [];

app.get('*', function(req, res) {
  // 获取当前请求的无效路由路径
  const requestedRoute = req.path;
  
  // 将路由存入数组
  invalidRoutes.push(requestedRoute);
  
  // 可选:打印日志便于调试
  console.log(`捕获无效路由:${requestedRoute}`);
  
  // 返回404响应
  res.status(404).send('页面不存在');
});

持久化存储(写入日志文件)

如果需要长期保存无效路由记录,可以写入本地日志文件:

const fs = require('fs');
const path = require('path');

app.get('*', function(req, res) {
  const requestedRoute = req.path;
  // 拼接带时间戳的日志内容
  const logContent = `${new Date().toISOString()} - 无效路由:${requestedRoute}\n`;
  
  // 追加写入到日志文件
  fs.appendFile(path.join(__dirname, 'invalid-routes.log'), logContent, (err) => {
    if (err) console.error('写入日志失败:', err);
  });
  
  res.status(404).send('页面不存在');
});

关键注意事项

  • req.path 会精准返回当前请求的路径(比如访问 http://yourdomain.com/india,req.path 的值就是 /india),完全匹配你需要捕获的目标路由。
  • 务必将通配符路由 * 放在所有有效路由的最后,避免拦截正常的合法请求(比如静态文件、已定义的业务路由)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 08:15:37