hn-hlw-service/check-env.js

91 lines
2.6 KiB
JavaScript
Raw Permalink Normal View History

2026-07-27 11:28:33 +08:00
#!/usr/bin/env node
/**
* 环境变量检查脚本
* 用于检查MongoDB连接所需的环境变量是否正确设置
*/
const path = require('path');
const fs = require('fs');
// 获取当前环境
const nodeEnv = process.env.NODE_ENV || 'development';
const envFile = `.env.${nodeEnv}`;
console.log('🔍 检查环境配置...');
console.log(`当前环境: ${nodeEnv}`);
console.log(`环境文件: ${envFile}`);
// 检查环境文件是否存在
if (fs.existsSync(envFile)) {
console.log('✅ 环境文件存在');
// 加载环境变量
require('dotenv').config({ path: envFile });
// 读取环境文件内容
const envContent = fs.readFileSync(envFile, 'utf8');
console.log('\n📄 环境文件内容:');
console.log(envContent);
} else {
console.log('❌ 环境文件不存在');
console.log('请确保环境文件存在:', path.resolve(envFile));
}
// 检查必需的环境变量
const requiredEnvVars = [
'CONFIG_DB_USERNAME',
'CONFIG_DB_PASSWORD',
'CONFIG_DB_HOST',
'CONFIG_DB_PORT',
'CONFIG_NODE_PORT'
];
console.log('\n🔧 检查必需的环境变量:');
let missingVars = [];
requiredEnvVars.forEach(varName => {
const value = process.env[varName];
if (value) {
// 对于密码等敏感信息,只显示部分内容
const displayValue = varName.includes('PASSWORD')
? '***' + value.slice(-3)
: value;
console.log(`${varName}: ${displayValue}`);
} else {
console.log(`${varName}: 未设置`);
missingVars.push(varName);
}
});
// 构造MongoDB连接字符串
const username = process.env.CONFIG_DB_USERNAME;
const password = process.env.CONFIG_DB_PASSWORD;
const host = process.env.CONFIG_DB_HOST;
const port = process.env.CONFIG_DB_PORT || '27017';
if (username && password && host) {
const mongoUrl = `mongodb://${username}:${password.replace(/./g, '*')}@${host}:${port}/admin`;
console.log('\n🔗 MongoDB连接字符串:');
console.log(mongoUrl);
} else {
console.log('\n❌ 无法构造MongoDB连接字符串缺少必要参数');
}
// 总结
console.log('\n📊 检查结果:');
if (missingVars.length === 0) {
console.log('✅ 所有必需的环境变量都已设置');
} else {
console.log(`❌ 缺少 ${missingVars.length} 个必需的环境变量:`);
missingVars.forEach(varName => {
console.log(` - ${varName}`);
});
console.log('\n💡 解决方案:');
console.log('1. 检查环境文件是否存在');
console.log('2. 确保环境变量拼写正确');
console.log('3. 检查环境变量值是否正确设置');
process.exit(1);
}
console.log('\n🚀 环境检查完成!');