Node.js+Express简易Hello World API无法连接问题求助
问题分析与修复方案
你的代码存在两个关键错误,导致请求一直加载无法响应:
- express.json中间件调用错误:
express.json是一个生成中间件的函数,必须通过express.json()调用才能生效。你当前的写法app.use(express.json)只是传递了函数本身,没有执行生成中间件,会导致请求处理流程卡住。 - 路由注册时机错误:
app.use("/", helloworld_route)放在了app.listen()之后。app.listen()启动服务器后,后续注册的路由不会被加载,所以你的/helloworld路由根本没有生效。
修复后的index.js代码如下:
const express = require("express"); const app = express(); const helloworld_route = require("./routes/helloworld"); const dotenv = require("dotenv"); dotenv.config({ path: "../.env.sample" }); const port = process.env.PORT; // 修复:调用express.json()生成中间件 app.use(express.json()); // 修复:先注册路由,再启动服务器 app.use("/", helloworld_route); app.listen(port, () => { console.log(`Listening on ${process.env.PORT}`); });
controllers/hello.js和routes/helloworld.js的代码无问题,保持原样即可。
修复后重启服务,访问http://localhost:3000/helloworld就能正常返回"Hello World!"了。
内容的提问来源于stack exchange,提问作者Tini
相关产品推荐
相关产品推荐

