You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.5 KiB
83 lines
2.5 KiB
// | ------------------------------------------------------------
|
|
// | @版本: version 0.1
|
|
// | @创建人: 【Nie-x7129】
|
|
// | @E-mail: x71291@outlook.com
|
|
// | @所在项目: initkoa
|
|
// | @文件描述: bootstrap.js - Koa项目启动文件
|
|
// | @创建时间: 2023-11-25 21:17
|
|
// | @更新时间: 2023-11-25 21:17
|
|
// | @修改记录:
|
|
// | -*-*-*- (时间--修改人--修改说明) -*-*-*-
|
|
// | =
|
|
// | ------------------------------------------------------------
|
|
import devConfig from '#root/development.env.js';
|
|
import prodConfig from '#root/production.env.js';
|
|
import startApp from '#home/app.js';
|
|
import winston from "winston";
|
|
import {logger, colorizer} from "#common/logger/index.js";
|
|
// | 获取ENV
|
|
const ENV = process.env.NODE_ENV && process.env.NODE_ENV.toLowerCase().trim();
|
|
|
|
if (ENV === 'development' || ENV === undefined) {
|
|
global.config = devConfig;
|
|
logger.add(new winston.transports.Console({
|
|
format:winston.format.combine(
|
|
winston.format.printf(
|
|
(i) => {
|
|
return colorizer.colorize(
|
|
i.level,
|
|
i.message
|
|
);
|
|
},
|
|
),
|
|
)
|
|
}))
|
|
} else if (ENV === 'production') {
|
|
global.config = prodConfig;
|
|
} else {
|
|
throw new Error(`未识别的环境变量${ENV}`);
|
|
}
|
|
global.logger = logger
|
|
global.ENV = ENV;
|
|
|
|
// = 函数名: checkPort
|
|
// = 描述: 检测服务端口是否正常
|
|
// = 参数: None
|
|
// = 返回值: undefined
|
|
// = 创建人: nie
|
|
// = 创建时间: 2023-11-25 21:49:22 -
|
|
function checkPort() {
|
|
if (
|
|
typeof global.config.port !== 'number' ||
|
|
global.config.port > 65536 ||
|
|
global.config.port < 3000
|
|
) {
|
|
throw new Error(`服务监听端口不合法:${global.config.port}`);
|
|
}
|
|
}
|
|
checkPort();
|
|
|
|
// = 函数名: checkAppName
|
|
// = 描述: 检测服务名是否正常
|
|
// = 参数: None
|
|
// = 返回值: undefined
|
|
// = 创建人: nie
|
|
// = 创建时间: 2023-11-25 21:51:03 -
|
|
function checkAppName() {
|
|
if (!global.config.appName) {
|
|
throw new Error(`服务名不存在:${global.config.appName}`);
|
|
}
|
|
}
|
|
checkAppName()
|
|
process.stdout.write('\u001b[2J\u001b[0;0H');
|
|
try {
|
|
const app = startApp();
|
|
app.listen(global.config.port);
|
|
console.log(
|
|
`Web服务 ${global.config.appName} 启动成功,访问: http://127.0.0.1:${global.config.port}`,
|
|
);
|
|
logger.info( `Web服务 ${global.config.appName} 启动成功,访问: http://127.0.0.1:${global.config.port}`)
|
|
} catch (e) {
|
|
console.error(e);
|
|
throw new Error(`Web服务启动失败`);
|
|
}
|
|
|