77 lines
2.0 KiB
JavaScript
77 lines
2.0 KiB
JavaScript
|
|
#!/usr/bin/env node
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 应用启动测试脚本
|
|||
|
|
* 快速验证应用是否能正常启动
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
// 加载环境变量
|
|||
|
|
const envFile = `.env.${process.env.NODE_ENV || "development"}`;
|
|||
|
|
require("dotenv").config({ path: envFile });
|
|||
|
|
|
|||
|
|
const express = require("express");
|
|||
|
|
const { connectToMongoDB, getDatabase } = require('./mongodb');
|
|||
|
|
|
|||
|
|
async function testStartup() {
|
|||
|
|
console.log('🚀 测试应用启动...');
|
|||
|
|
|
|||
|
|
try {
|
|||
|
|
// 1. 测试数据库连接
|
|||
|
|
console.log('1️⃣ 连接数据库...');
|
|||
|
|
await connectToMongoDB();
|
|||
|
|
console.log('✅ 数据库连接成功');
|
|||
|
|
|
|||
|
|
// 2. 测试获取数据库实例
|
|||
|
|
console.log('2️⃣ 测试数据库实例...');
|
|||
|
|
const db = await getDatabase("admin");
|
|||
|
|
await db.admin().ping();
|
|||
|
|
console.log('✅ 数据库实例正常');
|
|||
|
|
|
|||
|
|
// 3. 测试Express应用
|
|||
|
|
console.log('3️⃣ 创建Express应用...');
|
|||
|
|
const app = express();
|
|||
|
|
app.use(express.json());
|
|||
|
|
|
|||
|
|
// 简单的健康检查路由
|
|||
|
|
app.get('/health', (req, res) => {
|
|||
|
|
res.json({ status: 'ok', timestamp: new Date().toISOString() });
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// 测试数据库路由
|
|||
|
|
app.get('/test-db', async (req, res) => {
|
|||
|
|
try {
|
|||
|
|
const db = await getDatabase("admin");
|
|||
|
|
await db.admin().ping();
|
|||
|
|
res.json({ database: 'connected', status: 'ok' });
|
|||
|
|
} catch (error) {
|
|||
|
|
res.status(500).json({ error: error.message });
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// 启动服务器
|
|||
|
|
const port = process.env.CONFIG_NODE_PORT || 3000;
|
|||
|
|
const server = app.listen(port, () => {
|
|||
|
|
console.log(`✅ 服务器启动成功,端口: ${port}`);
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// 等待一会儿然后关闭
|
|||
|
|
setTimeout(() => {
|
|||
|
|
console.log('4️⃣ 关闭测试服务器...');
|
|||
|
|
server.close(() => {
|
|||
|
|
console.log('✅ 服务器已关闭');
|
|||
|
|
process.exit(0);
|
|||
|
|
});
|
|||
|
|
}, 3000);
|
|||
|
|
|
|||
|
|
} catch (error) {
|
|||
|
|
console.error('❌ 启动测试失败:', error.message);
|
|||
|
|
process.exit(1);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 运行测试
|
|||
|
|
if (require.main === module) {
|
|||
|
|
testStartup();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
module.exports = { testStartup };
|