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

Express拆分路由后遇路由找不到及SIGINT退出错误的解决求助

解决Express路由拆分后路由找不到及进程SIGINT退出问题

问题根源

你的productRoutes.js文件中直接使用了products变量,但没有导入该数据模块,这会导致运行时抛出变量未定义错误,进而触发Express路由参数处理异常,最终导致Node.js进程因未捕获的错误以SIGINT信号退出。

修复步骤

  1. 在productRoutes.js中导入products数据
    修改productRoutes.js,在顶部添加products的导入语句(注意路径要匹配你的文件结构):

    import express from 'express';
    // 新增导入语句,路径根据实际文件层级调整
    import products from '../data/products.js';
    const router = express.Router();
    
    router.get('/', (req, res) => {
        res.json(products);
    });
    
    router.get('/:id', (req, res) => {
        const product = products.find((p) => p._id === req.params.id);
        res.json(product);
    });
    
    export default router;
    
  2. 验证路由可用性
    重启服务器后,访问/api/products和/api/products/:id即可正常返回数据,路由找不到的错误会消失。

补充优化建议

为避免后续类似未处理错误直接导致进程崩溃,建议在主Express文件的所有路由之后添加全局错误捕获中间件:

// 放在app.listen之前
app.use((err, req, res, next) => {
    console.error(err.stack);
    res.status(500).send('服务器内部错误');
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 12:12:12