| |
| |
| |
| import app from './app.js' |
| import fs from 'node:fs' |
| import path from 'node:path' |
| import { fileURLToPath } from 'node:url' |
|
|
| const PORT = Number(process.env.PORT || 3210) |
| const __filename = fileURLToPath(import.meta.url) |
| const __dirname = path.dirname(__filename) |
| const projectRootDir = path.resolve(__dirname, '..', '..') |
| const distDir = path.resolve(projectRootDir, 'dist') |
|
|
| process.on('unhandledRejection', (reason) => { |
| console.error('未处理的 Promise 拒绝:', reason) |
| }) |
|
|
| process.on('uncaughtException', (error) => { |
| console.error('未捕获的异常:', error) |
| process.exit(1) |
| }) |
|
|
| const server = app.listen(PORT, '0.0.0.0', () => { |
| console.log( |
| `[boot] NODE_ENV=${process.env.NODE_ENV || ''} PORT=${PORT} cwd=${process.cwd()} root=${projectRootDir} distDir=${distDir} distExists=${fs.existsSync(distDir)} DATA_DIR=${process.env.DATA_DIR || ''}`, |
| ) |
| console.log(`API 服务已启动:http://0.0.0.0:${PORT}`) |
| }) |
|
|
| function shutdown(signal: string) { |
| console.log(`${signal} 信号已接收,正在关闭服务...`) |
| server.close(() => { |
| console.log('服务已关闭') |
| process.exit(0) |
| }) |
| } |
|
|
| process.on('SIGTERM', () => shutdown('SIGTERM')) |
| process.on('SIGINT', () => shutdown('SIGINT')) |
|
|
| export default app |
|
|