91 lines
2.6 KiB
JavaScript
91 lines
2.6 KiB
JavaScript
|
|
#!/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🚀 环境检查完成!');
|