运行时选项
npm scripts
Backend
| 命令 | 说明 |
|---|---|
npm run dev | build + start |
npm run build | tsc → dist/ |
npm start | node dist/index.js |
npm run typecheck | tsc --noEmit |
Frontend
| 命令 | 说明 |
|---|---|
npm run dev | next dev :3000 |
npm run build | 生产构建 |
npm start | next start |
npm run lint | ESLint |
Socket.IO(backend/src/lib/socket.ts)
| 选项 | 值 |
|---|---|
| pingTimeout | 60000 ms |
| pingInterval | 25000 ms |
| transports | websocket, polling |
主题
// frontend/src/lib/theme.ts
NEXT_PUBLIC_THEME=spring | mario
layout.tsx 设置 document.documentElement.dataset.theme。
登录码
- 6 位随机数字
100000–999999 - 无 Redis TTL,直到 close 或 reset
- 发布时覆盖旧码
玩家编号
- Redis
INCR game:{roomId}:player_number_seq - 显示格式:
玩家 #+ 三位零填充(#001)
JWT
expiresIn: '30d'
issuer: 'lottery-frontend'
audience: 'lottery-backend'
倒计时阈值
见 Core Concepts — 15/20/30/40 秒。
localStorage
| 键 | 说明 |
|---|---|
bucssa_lottery_player_id | 玩家 UUID |
Prisma
cd backend && npx prisma generate
cd frontend && npx prisma migrate dev # 开发
npx prisma migrate deploy # 生产
负载测试
cd flood-test
node code-login-test.js
node e2e-code-game-load-test.js
node heavy-load-test.js