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🚀 环境检查完成!');
|