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

Node.js中Express的/world GET路由无法访问问题求助

问题分析与修复方案

核心错误:中间件调用方式错误

你写的 app.use(cors, bodyParser.json()) 里,cors 是一个需要执行的函数,直接传入函数本身无法生成有效的中间件,会导致请求卡在这个环节,根本到不了 /world 路由。正确写法是调用 cors() 生成中间件:

app.use(cors(), bodyParser.json());

路由与中间件顺序问题

你把 app.listen(3000) 写在了中间件和 /world 路由之前,虽然Express允许这种写法,但规范上应该把启动服务器的代码放在所有路由、中间件注册完成之后,确保所有配置都能生效。

额外优化:处理MongoDB连接状态

目前的MongoDB连接没有状态监听,建议加上成功/失败的回调,方便排查数据库相关问题:

const db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB连接错误:'));
db.once('open', function() {
  console.log('MongoDB连接成功');
});

完整修复后的代码

const express = require("express");
const app = express();
const mongoose = require("mongoose");
const Observation = require("./schema/dreamWorld");
const bodyParser = require("body-parser");
const cors = require("cors");

// 先注册中间件
app.use(cors(), bodyParser.json());

// 定义路由
app.get("/", (req, res) => res.send("Hello World"));

app.get("/world", (req, res) => {
  return res.status(200).json({ message: "HAppy?" });
});

// MongoDB连接及状态监听
const mongoDB = "mongodb://127.0.0.1/test";
mongoose.connect(mongoDB, { useNewUrlParser: true, useUnifiedTopology: true });
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB连接错误:'));
db.once('open', function() {
  console.log('MongoDB连接成功');
});

// 最后启动服务器
app.listen(3000, () => console.log("Server started on port 3000"));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 16:31:15