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

ExpressJS应用异常排查求助:仅throw new Error生效,其余功能无响应

解决ExpressJS应用除throw语句外功能失效的问题

嘿,我一眼就揪出问题所在了——你代码里的那行throw new Error("NOT WORKING!")是直接在全局代码块里执行的,它会立刻终止整个Node.js进程,导致后面的路由注册、服务器监听这些关键代码根本没机会运行!这就是为什么只有这个throw能触发,其他功能全失效的核心原因。

解决方案

  1. 删除/注释掉那行测试用的throw语句:这行代码完全阻塞了后续代码的执行,是问题的罪魁祸首。
  2. 恢复测试路由(可选但建议):你之前注释掉的根路由可以帮你快速验证服务器是否正常启动。

修改后的完整代码

const express = require('express'); // 创建ExpressJS应用
const bodyParser = require('body-parser'); // 处理请求体
const app = express(); 

// 配置请求体解析中间件
app.use(express.json()) // 解析application/json类型请求
app.use(express.urlencoded({ extended: true })) // 解析application/x-www-form-urlencoded类型请求

// 数据库连接配置
const dbConnect = require('./config/AtlasConnect.js');
const mongoose = require('mongoose');

// 连接MongoDB数据库
mongoose.connect(dbConnect.database.url, { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => {
 console.log("Successfully connected to the MongoDB database");
}).catch(err => {
 console.log('Unable to connect to the MongoDB database', err);
 process.exit();
});

// 测试根路由,验证服务器状态
app.get('/', (req, res) => {
 res.json({"message": "My Phone Shop App. Use the app to manage your favourites!"});
});

// 注册用户相关路由
require('./app/routes/Users.routes.js')(app);

// 启动服务器监听端口3000
app.listen(3000, () => {
 console.log("Server listening on port 3000");
});

验证步骤

  • 运行修改后的代码,终端应该会依次输出数据库连接成功的提示和服务器监听的提示
  • 打开浏览器或者用Postman访问http://localhost:3000,应该能收到预期的JSON响应
  • 测试你的用户路由,确认接口能正常处理请求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 15:47:37