Files
framework_project_web/config/framework.config.js
张成 dee3a336ce init
2026-04-29 13:34:39 +08:00

130 lines
3.3 KiB
JavaScript
Raw Permalink 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.
/**
* Framework 配置文件
* 基于 node-core-framework 的配置
*/
const path = require("path");
const baseConfig = require("./config.js");
const customSchemas = require("./custom.schemas.js");
module.exports = {
// ===== 必需配置 =====
env: process.env.NODE_ENV || 'development',
"project_key": "fullstack_template",
// 数据库配置(必需)
db: {
username: baseConfig.db.username,
password: baseConfig.db.password,
database: baseConfig.db.database,
host: baseConfig.db.host,
port: baseConfig.db.port || 3306,
dialect: baseConfig.db.dialect || 'mysql',
timezone: '+08:00',
// 远程 MySQL 常见wait_timeout / 网络设备掐断空闲连接 → 池中连接已死仍被复用 → SequelizeConnectionError
dialectOptions: {
connectTimeout: 60000,
// mysql2@2+ 有效;旧版会忽略未知项
enableKeepAlive: true,
keepAliveInitialDelay: 10000,
},
pool: {
max: 50,
// min>0 会长期占着连接,服务端先断开后易 “Connection lost”开发/低频接口建议 0
min: 0,
acquire: 60000,
// 空闲超过 idle(ms) 释放回池,应小于 MySQL wait_timeout常见 60028800s
idle: 10000,
// 定期清理池中空闲连接,降低复用到已被服务端关闭的 TCP
evict: 15000,
},
slowSQLThreshold: 1000,
logging: (() => {
// 启用SQL监控
return (sql, timing) => {
// 调用监控函数
// 开发环境仍然输出日志
if (process.env.NODE_ENV === 'development') {
console.log(`[SQL] ${timing}ms - ${typeof sql === 'string' ? sql : (sql.sql || JSON.stringify(sql))}`);
}
};
})()
},
// API 路径配置(必需):模板仅保留管理端业务控制器目录
apiPaths: [
{
path: "./api/controller_admin",
prefix: "/admin_api",
authType: "admin",
},
],
"fileConifg": {
"vue": {
"api": "../../admin/src/api/",
"view": "../../admin/src/view/"
},
"node": {
"controller": "../controller_admin/",
"model": "../model/"
}
},
// API文档配置
swagger: {
title: "Fullstack Template API",
version: "1.0.0",
description: "admin-framework + node-core-framework 模板项目 API",
contact: {
name: '开发团队',
email: 'dev@example.com'
}
},
// ===== 建议配置 =====
// 基础 URL根据环境区分
baseUrl: (() => {
const env = process.env.NODE_ENV || 'production';
switch (env) {
case "production":
return "http://localhost:9098";
case "development":
default:
return "http://localhost:9098";
}
})(),
// 日志路径
logPath: './logs',
// 白名单 URL不需要认证的接口
allowUrls: baseConfig.allowUrls,
// 授权文件路径(可选,如果不需要授权验证可以设置为 null
// node-core-framework 读取顶层字段 licensePath
licensePath: path.join(__dirname, "..", "_license", "license.lic"),
// Redis 配置
redis: baseConfig.redis || null,
// 模型路径
modelPaths: './api/model',
// ===== 业务配置(从原 config.js 继承)=====
// 端口配置
port: baseConfig.port,
// 自定义 Swagger Schemas
customSchemas: customSchemas
};