- 实现拍照识别食物功能(集成大语言模型视觉能力) - 实现智能对话功能(集成大语言模型流式输出) - 实现食物记录和卡路里管理功能 - 实现体重记录和统计功能 - 实现健康数据管理页面 - 配置数据库表结构(用户、食物记录、体重记录) - 实现Express后端API路由 - 配置Tab导航和前端页面 - 采用健康运动配色方案
46 lines
1.2 KiB
Bash
46 lines
1.2 KiB
Bash
#!/bin/bash
|
|
|
|
ROOT_DIR="$(cd "$(dirname "$0")/../.." && pwd)"
|
|
SERVER_DIR="$ROOT_DIR/server"
|
|
LOG_DIR="$ROOT_DIR/logs"
|
|
LOG_FILE="$LOG_DIR/server.log"
|
|
SERVER_PORT="${SERVER_PORT:-9091}"
|
|
|
|
mkdir -p "$LOG_DIR"
|
|
|
|
pipe_to_log() {
|
|
local source="${1:-SERVER}"
|
|
local raw_log="${2:-}"
|
|
local line
|
|
while IFS= read -r line || [ -n "$line" ]; do
|
|
if [ -n "$raw_log" ]; then
|
|
echo "$line" >> "$raw_log"
|
|
fi
|
|
line=$(echo "[$source] $line" | sed 's/\x1b\[[0-9;]*[a-zA-Z]//g; s/\x1b\[[0-9;]*m//g')
|
|
echo "$line"
|
|
done
|
|
}
|
|
|
|
kill_old_server() {
|
|
if command -v lsof &> /dev/null; then
|
|
local pids
|
|
pids=$(lsof -t -i tcp:"$SERVER_PORT" -sTCP:LISTEN 2>/dev/null || true)
|
|
if [ -n "$pids" ]; then
|
|
echo "正在关闭旧的 server 进程:$pids"
|
|
kill -9 $pids 2>/dev/null || echo "关闭进程失败:$pids"
|
|
sleep 1
|
|
fi
|
|
fi
|
|
}
|
|
|
|
echo "==================== Server Dev Run ===================="
|
|
echo "Server 目录:$SERVER_DIR"
|
|
echo "Server 端口:$SERVER_PORT"
|
|
echo "日志文件:$LOG_FILE"
|
|
|
|
kill_old_server
|
|
|
|
echo "启动 server 服务..."
|
|
cd "$SERVER_DIR"
|
|
NODE_ENV=development PORT="$SERVER_PORT" npx tsx ./src/index.ts 2>&1 | pipe_to_log "SERVER" "$LOG_FILE"
|