更新文件结构,统一文档格式
This commit is contained in:
@@ -26,13 +26,13 @@ PROD_DB_PASSWORD=aiotAiot123!
|
||||
PROD_DB_NAME=jiebandata
|
||||
|
||||
# Redis配置
|
||||
REDIS_HOST=localhost
|
||||
REDIS_HOST=redis.jiebanke.com
|
||||
REDIS_PORT=6379
|
||||
REDIS_PASSWORD=
|
||||
REDIS_DB=0
|
||||
|
||||
# RabbitMQ配置
|
||||
RABBITMQ_HOST=localhost
|
||||
RABBITMQ_HOST=rabbitmq.jiebanke.com
|
||||
RABBITMQ_PORT=5672
|
||||
RABBITMQ_USERNAME=guest
|
||||
RABBITMQ_PASSWORD=guest
|
||||
|
||||
@@ -4,7 +4,7 @@ PORT=3000
|
||||
HOST=0.0.0.0
|
||||
|
||||
# 数据库配置
|
||||
DB_HOST=localhost
|
||||
DB_HOST=mysql.jiebanke.com
|
||||
DB_PORT=3306
|
||||
DB_USER=root
|
||||
DB_PASSWORD=your-mysql-password
|
||||
@@ -30,7 +30,7 @@ SMTP_USER=your-email@gmail.com
|
||||
SMTP_PASS=your-email-password
|
||||
|
||||
# Redis配置(可选)
|
||||
REDIS_HOST=localhost
|
||||
REDIS_HOST=redis.jiebanke.com
|
||||
REDIS_PORT=6379
|
||||
REDIS_PASSWORD=
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ cp .env.example .env
|
||||
|
||||
2. 编辑 `.env` 文件,配置你的环境变量:
|
||||
```env
|
||||
MONGODB_URI=mongodb://localhost:27017/jiebanke
|
||||
MONGODB_URI=mongodb://mongodb.jiebanke.com:27017/jiebanke
|
||||
JWT_SECRET=your-super-secret-jwt-key
|
||||
```
|
||||
|
||||
@@ -81,7 +81,7 @@ Content-Type: application/json
|
||||
"username": "testuser",
|
||||
"password": "password123",
|
||||
"nickname": "测试用户",
|
||||
"email": "test@example.com",
|
||||
"email": "test@jiebanke.com",
|
||||
"phone": "13800138000"
|
||||
}
|
||||
```
|
||||
|
||||
@@ -39,7 +39,7 @@ npm install
|
||||
|
||||
```env
|
||||
# 数据库配置
|
||||
DB_HOST=localhost
|
||||
DB_HOST=mysql.jiebanke.com
|
||||
DB_PORT=3306
|
||||
DB_USER=root
|
||||
DB_PASSWORD=your-mysql-password
|
||||
@@ -188,7 +188,7 @@ docker-compose up -d mysql
|
||||
2. **配置本地环境变量**
|
||||
```bash
|
||||
# 使用本地Docker MySQL
|
||||
export DB_HOST=localhost
|
||||
export DB_HOST=mysql.jiebanke.com
|
||||
export DB_PORT=3306
|
||||
export DB_PASSWORD=rootpassword
|
||||
export DB_DATABASE=jiebanke_dev
|
||||
|
||||
@@ -22,7 +22,7 @@ const config = {
|
||||
refreshExpiresIn: process.env.JWT_REFRESH_EXPIRES_IN || '30d'
|
||||
},
|
||||
redis: {
|
||||
host: process.env.REDIS_HOST || 'localhost',
|
||||
host: process.env.REDIS_HOST || 'redis.jiebanke.com',
|
||||
port: process.env.REDIS_PORT || 6379,
|
||||
password: process.env.REDIS_PASSWORD || ''
|
||||
},
|
||||
@@ -31,7 +31,7 @@ const config = {
|
||||
allowedTypes: ['image/jpeg', 'image/png', 'image/gif']
|
||||
},
|
||||
cors: {
|
||||
origin: process.env.CORS_ORIGIN || 'http://localhost:9000',
|
||||
origin: process.env.CORS_ORIGIN || 'https://www.jiebanke.com',
|
||||
credentials: true
|
||||
}
|
||||
},
|
||||
|
||||
@@ -16,7 +16,7 @@ services:
|
||||
- ./scripts/init-database.sql:/docker-entrypoint-initdb.d/init.sql
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p$$MYSQL_ROOT_PASSWORD"]
|
||||
test: ["CMD", "mysqladmin", "ping", "-h", "mysql.jiebanke.com", "-u", "root", "-p$$MYSQL_ROOT_PASSWORD"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
|
||||
@@ -53,8 +53,8 @@ INSERT INTO admins (username, password, email, role) VALUES
|
||||
|
||||
-- 插入测试用户账号
|
||||
INSERT INTO users (username, password, email, phone, real_name, id_card, balance, credit_score) VALUES
|
||||
('user1', '$2b$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'user1@example.com', '13800138001', '张三', '110101199001011234', 1000.00, 95),
|
||||
('user2', '$2b$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'user2@example.com', '13800138002', '李四', '110101199002022345', 500.00, 85);
|
||||
('user1', '$2b$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'user1@jiebanke.com', '13800138001', '张三', '110101199001011234', 1000.00, 95),
|
||||
('user2', '$2b$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'user2@jiebanke.com', '13800138002', '李四', '110101199002022345', 500.00, 85);
|
||||
|
||||
-- 创建索引
|
||||
CREATE INDEX idx_admins_username ON admins(username);
|
||||
|
||||
@@ -11,7 +11,7 @@ const config = require('../config/env');
|
||||
|
||||
// 数据库配置
|
||||
const dbConfig = {
|
||||
host: process.env.DB_HOST || 'localhost',
|
||||
host: process.env.DB_HOST || 'mysql.jiebanke.com',
|
||||
port: process.env.DB_PORT || 3306,
|
||||
user: process.env.DB_USER || 'root',
|
||||
password: process.env.DB_PASSWORD || '',
|
||||
@@ -44,7 +44,7 @@ const testData = {
|
||||
{
|
||||
username: 'user1',
|
||||
password: 'user123',
|
||||
email: 'user1@example.com',
|
||||
email: 'user1@jiebanke.com',
|
||||
nickname: '旅行爱好者',
|
||||
avatar: null,
|
||||
user_type: '普通用户',
|
||||
@@ -53,7 +53,7 @@ const testData = {
|
||||
{
|
||||
username: 'merchant1',
|
||||
password: 'merchant123',
|
||||
email: 'merchant1@example.com',
|
||||
email: 'merchant1@jiebanke.com',
|
||||
nickname: '农家乐老板',
|
||||
avatar: null,
|
||||
user_type: '商家',
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
const axios = require('axios');
|
||||
|
||||
// API配置
|
||||
const API_BASE_URL = process.env.API_BASE_URL || 'http://localhost:3100';
|
||||
const API_BASE_URL = process.env.API_BASE_URL || 'https://api.jiebanke.com';
|
||||
const API_VERSION = process.env.API_VERSION || '/api/v1';
|
||||
|
||||
// 测试用例
|
||||
|
||||
@@ -31,7 +31,7 @@ app.use(helmet());
|
||||
app.use(cors({
|
||||
origin: process.env.NODE_ENV === 'production'
|
||||
? ['https://your-domain.com']
|
||||
: ['http://localhost:9000', 'http://localhost:3000', 'http://localhost:3100', 'http://localhost:3150'],
|
||||
: ['https://www.jiebanke.com', 'https://admin.jiebanke.com', 'https://api.jiebanke.com'],
|
||||
credentials: true
|
||||
}));
|
||||
|
||||
@@ -79,7 +79,7 @@ app.use('/uploads', express.static('uploads'));
|
||||
// Swagger文档路由
|
||||
if (process.env.NODE_ENV === 'development' || process.env.ENABLE_SWAGGER === 'true') {
|
||||
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec));
|
||||
console.log('📚 Swagger文档已启用: http://localhost:3100/api-docs');
|
||||
console.log('📚 Swagger文档已启用: https://api.jiebanke.com/api-docs');
|
||||
}
|
||||
|
||||
// 健康检查路由
|
||||
|
||||
@@ -11,7 +11,7 @@ class RabbitMQConfig {
|
||||
|
||||
// 获取连接URL
|
||||
getConnectionUrl() {
|
||||
const host = process.env.RABBITMQ_HOST || 'localhost';
|
||||
const host = process.env.RABBITMQ_HOST || 'rabbitmq.jiebanke.com';
|
||||
const port = process.env.RABBITMQ_PORT || 5672;
|
||||
const username = process.env.RABBITMQ_USERNAME || 'guest';
|
||||
const password = process.env.RABBITMQ_PASSWORD || 'guest';
|
||||
@@ -165,7 +165,7 @@ class RabbitMQConfig {
|
||||
|
||||
return {
|
||||
status: 'healthy',
|
||||
host: process.env.RABBITMQ_HOST || 'localhost',
|
||||
host: process.env.RABBITMQ_HOST || 'rabbitmq.jiebanke.com',
|
||||
port: process.env.RABBITMQ_PORT || 5672,
|
||||
connected: this.isConnected
|
||||
};
|
||||
@@ -173,7 +173,7 @@ class RabbitMQConfig {
|
||||
return {
|
||||
status: 'unhealthy',
|
||||
error: error.message,
|
||||
host: process.env.RABBITMQ_HOST || 'localhost',
|
||||
host: process.env.RABBITMQ_HOST || 'rabbitmq.jiebanke.com',
|
||||
port: process.env.RABBITMQ_PORT || 5672,
|
||||
connected: false
|
||||
};
|
||||
|
||||
@@ -10,7 +10,7 @@ class RedisConfig {
|
||||
createClient() {
|
||||
const redisConfig = {
|
||||
socket: {
|
||||
host: process.env.REDIS_HOST || 'localhost',
|
||||
host: process.env.REDIS_HOST || 'redis.jiebanke.com',
|
||||
port: process.env.REDIS_PORT || 6379,
|
||||
reconnectStrategy: (retries) => {
|
||||
const delay = Math.min(retries * 100, 3000);
|
||||
@@ -66,7 +66,7 @@ class RedisConfig {
|
||||
|
||||
// 开发环境下,如果Redis未配置,则不连接
|
||||
if (process.env.NODE_ENV === 'development' &&
|
||||
(!process.env.REDIS_HOST || process.env.REDIS_HOST === 'localhost')) {
|
||||
(!process.env.REDIS_HOST || process.env.REDIS_HOST === 'redis.jiebanke.com')) {
|
||||
console.log('⚠️ 开发环境未配置Redis,跳过连接');
|
||||
return null;
|
||||
}
|
||||
@@ -94,7 +94,7 @@ class RedisConfig {
|
||||
getStatus() {
|
||||
return {
|
||||
isConnected: this.isConnected,
|
||||
host: process.env.REDIS_HOST || 'localhost',
|
||||
host: process.env.REDIS_HOST || 'redis.jiebanke.com',
|
||||
port: process.env.REDIS_PORT || 6379
|
||||
};
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ const options = {
|
||||
},
|
||||
servers: [
|
||||
{
|
||||
url: 'http://localhost:3001/api/v1',
|
||||
url: 'https://admin.jiebanke.com/api/v1',
|
||||
description: '开发环境服务器'
|
||||
},
|
||||
{
|
||||
|
||||
@@ -21,7 +21,7 @@ const options = {
|
||||
},
|
||||
servers: [
|
||||
{
|
||||
url: 'http://localhost:3100/api/v1',
|
||||
url: 'https://api.jiebanke.com/api/v1',
|
||||
description: '开发环境'
|
||||
},
|
||||
{
|
||||
@@ -113,7 +113,7 @@ const options = {
|
||||
},
|
||||
avatar: {
|
||||
type: 'string',
|
||||
example: 'https://example.com/avatar.jpg'
|
||||
example: 'https://www.jiebanke.com/avatar.jpg'
|
||||
},
|
||||
role: {
|
||||
type: 'string',
|
||||
|
||||
@@ -42,7 +42,7 @@ const router = express.Router()
|
||||
* email:
|
||||
* type: string
|
||||
* description: 邮箱
|
||||
* example: test@example.com
|
||||
* example: test@jiebanke.com
|
||||
* phone:
|
||||
* type: string
|
||||
* description: 手机号
|
||||
|
||||
@@ -13,7 +13,7 @@ class Database {
|
||||
|
||||
try {
|
||||
// 连接数据库
|
||||
const mongodbUri = process.env.MONGODB_URI || 'mongodb://localhost:27017/jiebanke'
|
||||
const mongodbUri = process.env.MONGODB_URI || 'mongodb://mongodb.jiebanke.com:27017/jiebanke'
|
||||
await this.mongoose.connect(mongodbUri, {
|
||||
useNewUrlParser: true,
|
||||
useUnifiedTopology: true
|
||||
|
||||
@@ -4,7 +4,7 @@ const http = require('http');
|
||||
function testHealthCheck() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const options = {
|
||||
hostname: 'localhost',
|
||||
hostname: 'api.jiebanke.com',
|
||||
port: 3000,
|
||||
path: '/health',
|
||||
method: 'GET'
|
||||
@@ -43,7 +43,7 @@ function testAuthAPI() {
|
||||
});
|
||||
|
||||
const options = {
|
||||
hostname: 'localhost',
|
||||
hostname: 'api.jiebanke.com',
|
||||
port: 3000,
|
||||
path: '/api/v1/auth/login',
|
||||
method: 'POST',
|
||||
|
||||
@@ -2,7 +2,7 @@ const http = require('http');
|
||||
|
||||
// 发送请求到Swagger UI
|
||||
const options = {
|
||||
hostname: 'localhost',
|
||||
hostname: 'admin.jiebanke.com',
|
||||
port: 3001,
|
||||
path: '/api-docs/',
|
||||
method: 'GET'
|
||||
|
||||
Reference in New Issue
Block a user