Files
AIclinicalresearch/快速修复-端口占用.md
AI Clinical Dev Team 9acbb0ae2b feat: complete Dify platform deployment (Day 18)
## Dify 閮ㄧ讲瀹屾垚 鉁?
### 瀹屾垚鐨勫伐浣?1. Docker 闀滃儚鍔犻€熷櫒閰嶇疆
   - 閰嶇疆 5 涓浗鍐呴暅鍍忔簮
   - 澶у箙鎻愬崌涓嬭浇閫熷害鍜屾垚鍔熺巼

2. Dify 闀滃儚鎷夊彇 (鍏?11 涓湇鍔?
   - langgenius/dify-api:1.9.1
   - langgenius/dify-web:1.9.1
   - postgres, redis, weaviate, nginx 绛?   - 鎬诲ぇ灏忕害 2GB锛岃€楁椂绾?15 鍒嗛挓

3. Dify 鏈嶅姟鍚姩
   - 鉁?nginx (80/443)
   - 鉁?api, worker, worker_beat
   - 鉁?web (3000)
   - 鉁?db (PostgreSQL), redis
   - 鉁?weaviate (鍚戦噺鏁版嵁搴?
   - 鉁?sandbox, plugin_daemon, ssrf_proxy

4. Dify 鍒濆鍖栭厤缃?   - 鍒涘缓绠$悊鍛樿处鍙?   - 鍒涘缓搴旂敤: AI Clinical Research
   - 鑾峰彇 API Key: app-VZRn0vMXdmltEJkvatHVGv5j

5. 鍚庣鐜閰嶇疆
   - DIFY_API_URL=http://localhost/v1
   - DIFY_API_KEY 宸查厤缃?
### 鏂囨。鏇存柊
- 鏂板: docs/05-姣忔棩杩涘害/Day18-Dify閮ㄧ讲瀹屾垚.md
- 鏇存柊: docs/04-寮€鍙戣鍒?寮€鍙戦噷绋嬬.md (Day 18 鏍囪涓哄畬鎴?

### 涓嬩竴姝?Day 19-24: 鐭ヨ瘑搴撶郴缁熷紑鍙?- Dify 瀹㈡埛绔皝瑁?- 鐭ヨ瘑搴撶鐞?CRUD
- 鏂囨。涓婁紶涓庡鐞?- @鐭ヨ瘑搴撻泦鎴?- RAG 闂瓟楠岃瘉

---
Progress: 閲岀▼纰?1 (MVP) 85% -> 鐭ヨ瘑搴撶郴缁熷紑鍙戜腑
2025-10-11 08:58:41 +08:00

4.4 KiB
Raw Blame History

🔧 快速修复:端口占用问题

问题症状

错误1EADDRINUSE

ERROR: listen EADDRINUSE: address already in use 0.0.0.0:3001

原因: 后端服务已经在运行端口3001被占用

错误2ENOBUFS / 连接错误

[vite] http proxy error: /api/v1/projects
AggregateError [ENOBUFS]

原因: 前端尝试连接后端,但后端未正常运行

错误3超时错误

AxiosError: timeout of 30000ms exceeded

原因: API请求超时后端服务不可用


解决方案3步

方案1使用脚本推荐

步骤1停止所有服务

双击运行停止所有服务.bat

步骤2重新启动

双击运行一键启动.bat

方案2手动操作

步骤1查看端口占用

双击运行查看端口占用.bat

步骤2手动停止进程

# 查找占用3001端口的进程
netstat -ano | findstr :3001

# 假设PID是12345停止该进程
taskkill /F /PID 12345

步骤3重新启动

# 终端1 - 后端
cd backend
npm run dev

# 终端2 - 前端
cd frontend
npm run dev

方案3停止所有Node进程彻底清理

# 停止所有Node进程
taskkill /F /IM node.exe

# 然后重新启动
双击运行一键启动.bat

⚠️ 警告: 这会停止电脑上所有Node进程包括其他项目


🔍 诊断工具

1. 查看端口占用

查看端口占用.bat

2. 停止所有服务

停止所有服务.bat

3. 系统诊断

诊断问题.bat

📋 完整启动清单

正确的启动流程

  1. 确保之前的服务已停止

    停止所有服务.bat
    
  2. 启动Docker容器

    docker-compose up -d
    # 或者一键启动会自动处理
    
  3. 启动后端服务

    cd backend
    npm run dev
    

    预期输出:

    🚀 AI临床研究平台 - 后端服务器启动成功!
    📍 服务地址: http://localhost:3001
    
  4. 启动前端服务

    cd frontend
    npm run dev
    

    预期输出:

    ➜  Local:   http://localhost:3000/
    
  5. 访问系统

    http://localhost:3000/
    

⚠️ 常见错误

错误1端口3001已占用

解决: 运行 停止所有服务.bat

错误2端口3000已占用

解决: 运行 停止所有服务.bat

错误3Docker容器未运行

解决:

docker-compose up -d

错误4数据库连接失败

解决:

# 检查容器状态
docker ps

# 如果没有看到postgres和redis启动它们
docker-compose up -d

🎯 快速命令参考

查看端口占用

# 查看3001端口
netstat -ano | findstr :3001

# 查看3000端口
netstat -ano | findstr :3000

# 查看所有Node进程
tasklist | findstr node.exe

停止进程

# 停止特定PID
taskkill /F /PID <PID号>

# 停止所有Node进程
taskkill /F /IM node.exe

检查服务状态

# 后端健康检查
curl http://localhost:3001/health

# Docker容器状态
docker ps

💡 避免端口占用的建议

1. 使用统一的启动脚本

始终使用 一键启动.bat 启动服务

2. 使用统一的停止脚本

不用时运行 停止所有服务.bat 停止服务

3. 不要重复启动

在启动新服务前,先确保旧服务已停止

4. 关闭终端时确保进程已停止

不要直接关闭终端窗口,先按 Ctrl+C 停止服务


🆘 仍然无法解决?

检查清单

  • 运行了 停止所有服务.bat
  • 确认端口已释放(netstat -ano | findstr :3001
  • Docker容器正在运行docker ps
  • 后端依赖已安装(cd backend && npm install
  • 前端依赖已安装(cd frontend && npm install
  • 数据库迁移已完成(cd backend && npx prisma migrate dev
  • 模拟用户已创建(cd backend && npx tsx src/scripts/create-mock-user.ts

获取帮助

如果问题仍未解决,请提供:

  1. 查看端口占用.bat 的输出
  2. 后端启动的完整日志
  3. 前端启动的完整日志
  4. docker ps 的输出

按照以上步骤操作,问题应该可以解决!