ExpressJS本地服务器无响应:localhost未发送数据(ERR_EMPTY_RESPONSE)
问题分析与解决方案
让我仔细检查了你的代码,发现两个关键问题导致浏览器访问http://localhost:5000时返回空响应:
Cookie Parser中间件调用错误
你写的app.use(cookieParser);是错误的用法,cookieParser是一个需要执行的函数(要加括号),这样才能返回Express可用的中间件函数。如果直接传函数本身,Express无法正确加载这个中间件,可能阻塞请求处理流程。根路由的语法错误
你的app.get('/'路由定义最后缺少了闭合的括号),这会导致整个路由无法被Express正确注册。服务器根本不知道如何处理根路径的GET请求,所以浏览器会一直等待响应,直到超时返回ERR_EMPTY_RESPONSE。
修正后的完整代码
const express = require('express'); const app = express(); const cookieParser = require('cookie-parser'); const mongoose = require('mongoose'); // 修正:调用cookieParser函数 app.use(cookieParser()); app.use(express.json()); //const userRouter = require('./routes/user'); //app.use('/user', userRouter); const startApp = async () => { try { await mongoose.connect('mongodb+srv://username:pass@cluster0-dcytp.mongodb.net/test?retryWrites=true&w=majority', { useUnifiedTopology: true,useNewUrlParser: true }); console.log(`successfully connected to database`); const port = process.env.PORT || 5000 app.listen(port, () => { console.log(`server runnin at ${port}`); }); } catch (error) { console.log(error.message) } } startApp(); // 修正:添加闭合括号 app.get('/', (req, res) => { console.log("I am in the root"); res.send("hello World"); });
修复这两个问题后,重启服务器,再访问http://localhost:5000应该就能正常收到"hello World"的响应了。
内容的提问来源于stack exchange,提问作者geektanvir
相关产品推荐
相关产品推荐

