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

Node.js调试时event.js第160行出现未处理错误事件的原因

解决Express中event.js第160行未处理错误事件(Unhandled Error Event)的问题

嘿,作为刚接触Node.js的新手,碰到这个event.js第160行的未处理错误事件真的很常见,我来帮你梳理下可能的原因和对应的解决办法~

可能的原因及解决步骤

1. 依赖包未正确安装

你的代码里用到了express和ejs两个核心依赖,如果这两个包没安装或者安装过程中出了问题,启动服务时就会触发错误。

  • 解决办法:打开项目根目录的终端,执行以下命令重新安装依赖:
    npm install express ejs --save
    
    确保安装过程没有红色报错,之后再重新启动你的server.js。

2. 路由文件./router/main.js存在问题

你通过require('./router/main')(app)挂载路由,如果这个main.js里有语法错误、未处理的异步错误,或者路由配置逻辑有问题,都会导致启动时触发未捕获的错误。

  • 解决办法:
    • 先检查main.js的结构是否正确,它应该是一个导出函数的模块,类似这样:
      module.exports = function(app) {
        // 示例路由,根据你的需求修改
        app.get('/', function(req, res) {
          res.render('index.html');
        });
        app.get('/about', function(req, res) {
          res.render('about.html');
        });
      };
      
    • 确认里面的异步操作(比如文件读取、数据库请求)都加了错误捕获,避免出现未处理的Promise拒绝或者回调错误。

3. 视图文件或渲染配置问题

你设置了视图目录为__dirname + '/views',用ejs的renderFile来渲染HTML文件,但如果出现以下情况也会报错:

  • views目录不存在,或者里面的HTML文件路径写错了;
  • HTML文件里不小心混入了ejs语法(比如<% %>标签),导致渲染失败。
  • 解决办法:
    • 检查项目根目录下是否有views文件夹,且你要渲染的两个HTML文件确实在这个文件夹里;
    • 打开HTML文件,确认没有错误的ejs语法,如果有的话修正或者移除。

4. 端口3000被占用

如果你的电脑上已经有其他程序在使用3000端口,app.listen(3000)会抛出错误,而你的代码没有监听服务器的错误事件,就会触发未处理的错误事件。

  • 解决办法:
    • 给你的server对象添加错误监听,这样能明确看到端口占用的提示:
      var server = app.listen(3000,function(){ 
          console.log("Express is running on port 3000"); 
      });
      
      server.on('error', function(err) {
        if (err.code === 'EADDRINUSE') {
          console.log('端口3000已被占用,试试换个端口比如3001吧!');
        } else {
          console.error('服务器启动出错:', err);
        }
      });
      
    • 或者直接把代码里的3000改成其他未被占用的端口,比如3001。

通用调试技巧

为了更快定位问题,你可以在代码里添加全局错误捕获,这样能看到更详细的错误信息,而不是只看到event.js第160行的模糊提示:

// 放在server.js的合适位置,比如文件末尾
process.on('uncaughtException', function(err) {
  console.error('【未捕获异常】:', err);
  console.error('异常堆栈:', err.stack);
});

process.on('unhandledRejection', function(reason, promise) {
  console.error('【未处理Promise拒绝】:', reason);
});

添加后重启服务,就能看到具体的错误内容,帮你精准定位问题所在。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:30:44