hn-hlw-service/check-env.js
2026-07-27 11:28:33 +08:00

91 lines
2.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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