2025-09-08 16:34:51 +08:00
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
2025-10-09 10:06:58 +08:00
|
|
|
|
# 订单班AI生成方案展示系统 - 启动脚本
|
2025-09-08 16:34:51 +08:00
|
|
|
|
# 端口: 4155
|
2025-09-14 18:53:27 +08:00
|
|
|
|
# 支持局域网访问
|
2025-09-08 16:34:51 +08:00
|
|
|
|
|
|
|
|
|
|
# 颜色定义
|
2025-10-09 10:06:58 +08:00
|
|
|
|
GREEN='\033[0;32m'
|
|
|
|
|
|
BLUE='\033[0;34m'
|
|
|
|
|
|
YELLOW='\033[1;33m'
|
|
|
|
|
|
RED='\033[0;31m'
|
|
|
|
|
|
NC='\033[0m'
|
2025-09-08 16:34:51 +08:00
|
|
|
|
|
|
|
|
|
|
# 获取脚本所在目录
|
|
|
|
|
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
|
|
|
|
|
2025-09-14 18:53:27 +08:00
|
|
|
|
# 获取局域网IP
|
|
|
|
|
|
get_lan_ip() {
|
|
|
|
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
|
|
|
|
ifconfig | grep "inet " | grep -v 127.0.0.1 | head -1 | awk '{print $2}'
|
|
|
|
|
|
else
|
|
|
|
|
|
hostname -I | awk '{print $1}'
|
|
|
|
|
|
fi
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-10-09 10:06:58 +08:00
|
|
|
|
echo -e "${BLUE}==========================================${NC}"
|
|
|
|
|
|
echo -e "${BLUE} 订单班AI生成方案展示系统${NC}"
|
2025-09-08 16:34:51 +08:00
|
|
|
|
echo -e "${BLUE} 端口: 4155${NC}"
|
2025-09-14 18:53:27 +08:00
|
|
|
|
echo -e "${BLUE} 支持局域网访问${NC}"
|
2025-10-09 10:06:58 +08:00
|
|
|
|
echo -e "${BLUE}==========================================${NC}"
|
2025-09-08 16:34:51 +08:00
|
|
|
|
echo
|
|
|
|
|
|
|
|
|
|
|
|
# 切换到脚本所在目录
|
|
|
|
|
|
cd "$SCRIPT_DIR"
|
|
|
|
|
|
|
|
|
|
|
|
# 检查 Node.js
|
|
|
|
|
|
if ! command -v node &> /dev/null; then
|
|
|
|
|
|
echo -e "${RED}[错误] Node.js 未安装${NC}"
|
|
|
|
|
|
echo -e "${YELLOW}请先安装 Node.js: https://nodejs.org${NC}"
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
echo -e "${GREEN}[信息] Node.js 版本: $(node --version)${NC}"
|
|
|
|
|
|
|
2025-10-09 10:06:58 +08:00
|
|
|
|
# 检查是否安装了依赖
|
|
|
|
|
|
if [ ! -d "node_modules" ]; then
|
|
|
|
|
|
echo -e "${YELLOW}[信息] 首次运行,正在安装依赖...${NC}"
|
|
|
|
|
|
npm install
|
|
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
|
|
echo -e "${GREEN}[成功] 依赖安装完成${NC}"
|
|
|
|
|
|
else
|
|
|
|
|
|
echo -e "${RED}[错误] 依赖安装失败${NC}"
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
fi
|
|
|
|
|
|
echo
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
2025-09-14 18:53:27 +08:00
|
|
|
|
# 获取局域网IP
|
|
|
|
|
|
LAN_IP=$(get_lan_ip)
|
|
|
|
|
|
if [ -z "$LAN_IP" ]; then
|
|
|
|
|
|
echo -e "${YELLOW}[警告] 无法获取局域网IP,将只监听本地${NC}"
|
|
|
|
|
|
LAN_IP="localhost"
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
2025-09-08 16:34:51 +08:00
|
|
|
|
# 检查端口是否被占用
|
|
|
|
|
|
if lsof -Pi :4155 -sTCP:LISTEN -t >/dev/null 2>&1; then
|
|
|
|
|
|
echo -e "${YELLOW}[警告] 端口 4155 已被占用${NC}"
|
|
|
|
|
|
echo -e "${BLUE}[信息] 正在查看占用进程...${NC}"
|
|
|
|
|
|
lsof -i :4155
|
2025-10-09 10:06:58 +08:00
|
|
|
|
|
2025-09-08 16:34:51 +08:00
|
|
|
|
read -p "是否终止占用进程?(y/N): " kill_process
|
|
|
|
|
|
if [[ $kill_process =~ ^[Yy]$ ]]; then
|
|
|
|
|
|
echo -e "${BLUE}[信息] 正在终止占用进程...${NC}"
|
|
|
|
|
|
lsof -ti:4155 | xargs kill -9
|
|
|
|
|
|
echo -e "${GREEN}[成功] 进程已终止${NC}"
|
|
|
|
|
|
sleep 1
|
|
|
|
|
|
else
|
|
|
|
|
|
echo -e "${RED}[错误] 无法启动服务器,端口被占用${NC}"
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
fi
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
# 启动服务器
|
|
|
|
|
|
echo -e "${GREEN}[信息] 正在启动服务器...${NC}"
|
2025-09-14 18:53:27 +08:00
|
|
|
|
echo
|
2025-10-09 10:06:58 +08:00
|
|
|
|
echo -e "${GREEN}╔═══════════════════════════════════════════════╗${NC}"
|
|
|
|
|
|
echo -e "${GREEN}║ 订单班AI生成方案展示系统 ║${NC}"
|
|
|
|
|
|
echo -e "${GREEN}╠═══════════════════════════════════════════════╣${NC}"
|
2025-09-14 18:53:27 +08:00
|
|
|
|
echo -e "${GREEN}║${NC} 🏠 本地访问:"
|
|
|
|
|
|
echo -e "${GREEN}║${NC} ${BLUE}http://localhost:4155${NC}"
|
|
|
|
|
|
echo -e "${GREEN}║${NC}"
|
|
|
|
|
|
if [ "$LAN_IP" != "localhost" ]; then
|
|
|
|
|
|
echo -e "${GREEN}║${NC} 🌐 局域网访问:"
|
|
|
|
|
|
echo -e "${GREEN}║${NC} ${BLUE}http://${LAN_IP}:4155${NC}"
|
|
|
|
|
|
echo -e "${GREEN}║${NC}"
|
|
|
|
|
|
echo -e "${GREEN}║${NC} 📱 移动设备访问:"
|
|
|
|
|
|
echo -e "${GREEN}║${NC} ${BLUE}http://${LAN_IP}:4155${NC}"
|
2025-10-09 10:06:58 +08:00
|
|
|
|
echo -e "${GREEN}║${NC}"
|
2025-09-14 18:53:27 +08:00
|
|
|
|
fi
|
2025-10-09 10:06:58 +08:00
|
|
|
|
echo -e "${GREEN}║${NC} 📋 访问示例:"
|
|
|
|
|
|
echo -e "${GREEN}║${NC} • 首页: ${BLUE}http://localhost:4155/${NC}"
|
|
|
|
|
|
echo -e "${GREEN}║${NC} • 文旅: ${BLUE}http://localhost:4155/order-class/wenlu${NC}"
|
|
|
|
|
|
echo -e "${GREEN}║${NC} • 食品: ${BLUE}http://localhost:4155/order-class/food${NC}"
|
|
|
|
|
|
echo -e "${GREEN}║${NC} • 财经: ${BLUE}http://localhost:4155/order-class/finance${NC}"
|
|
|
|
|
|
echo -e "${GREEN}║${NC} • 土木: ${BLUE}http://localhost:4155/order-class/civil${NC}"
|
|
|
|
|
|
echo -e "${GREEN}║${NC}"
|
|
|
|
|
|
echo -e "${GREEN}║${NC} 🔗 或使用URL参数:"
|
|
|
|
|
|
echo -e "${GREEN}║${NC} ${BLUE}http://localhost:4155/?class=wenlu${NC}"
|
|
|
|
|
|
echo -e "${GREEN}║${NC} ${BLUE}http://localhost:4155/?class=food${NC}"
|
|
|
|
|
|
echo -e "${GREEN}╚═══════════════════════════════════════════════╝${NC}"
|
2025-09-14 18:53:27 +08:00
|
|
|
|
echo
|
2025-09-08 16:34:51 +08:00
|
|
|
|
echo -e "${YELLOW}[提示] 按 Ctrl+C 停止服务器${NC}"
|
|
|
|
|
|
echo
|
|
|
|
|
|
|
2025-10-09 10:06:58 +08:00
|
|
|
|
# 启动Node.js服务器
|
|
|
|
|
|
node app.js
|