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.
 
initkoa/bootstrap.js

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服务启动失败`);
}