Skip to content

Commit a32657d

Browse files
committed
feat(0.0.4): 修复问题,并发布0.0.4
1 parent aae3b23 commit a32657d

File tree

4 files changed

+31
-39
lines changed

4 files changed

+31
-39
lines changed

CHANGELOG.md

+10-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,16 @@
33
> 次版本:每季度发布一次,向下兼容的功能性新增
44
> 修订版本:每周发布一次(紧急版本随时发布),向下兼容的问题修正
55
6-
## 0.0.3 [Current]
6+
## 0.0.4 [Current]
7+
###### 发布日期:2023-05-23
8+
###### 兼容性:0.x.x
9+
10+
+ 修复InHeader只能大写或者驼峰无法获取请求头的问题
11+
+ BriskControllerError增加setBody方法
12+
+ 修复端口冲突程序处理异常的问题
13+
14+
15+
## 0.0.3
716
###### 发布日期:2023-05-15
817
###### 兼容性:0.x.x
918

package.json

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "brisk-controller",
3-
"version": "0.0.3",
3+
"version": "0.0.4",
44
"description": "fast light brisk controller in nodejs(koa)",
55
"main": "lib/index.js",
66
"types": "lib/index.d.ts",
@@ -35,15 +35,16 @@
3535
},
3636
"homepage": "https://github.com/ruixiaozi/brisk-controller#readme",
3737
"dependencies": {
38-
"brisk-ioc": "0.0.3",
39-
"brisk-log": "0.0.3",
40-
"brisk-ts-extends": "0.0.3",
38+
"brisk-ioc": "0.0.4",
39+
"brisk-log": "0.0.4",
40+
"brisk-ts-extends": "0.0.4",
4141
"co-body": "^6.1.0",
4242
"koa": "2.14.1",
4343
"koa-cors": "0.0.16",
4444
"koa-static": "5.0.0",
4545
"koa2-swagger-ui": "5.6.0",
46-
"path-to-regexp": "^6.2.1"
46+
"path-to-regexp": "^6.2.1",
47+
"portfinder": "^1.0.32"
4748
},
4849
"devDependencies": {
4950
"@commitlint/cli": "16.2.1",

src/core/core.ts

+10-32
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import cors from 'koa-cors';
55
import staticMidware from 'koa-static';
66
import path from 'path';
77
import { Server } from 'http';
8-
import net from 'net';
8+
import { getPortPromise } from 'portfinder';
99
import {
1010
BriskControllerRequestHandler,
1111
BriskControllerOption,
@@ -223,7 +223,7 @@ function getParameters(ctx: Context, params?: BriskControllerParameter[]) {
223223
value = (ctx.request as any).pathParams?.[item.name];
224224
break;
225225
case BRISK_CONTROLLER_PARAMETER_IS_E.HEADER:
226-
value = ctx.request.headers[item.name];
226+
value = ctx.request.headers[item.name.toLowerCase()];
227227
break;
228228
case BRISK_CONTROLLER_PARAMETER_IS_E.COOKIE:
229229
value = ctx.cookies.get(item.name);
@@ -327,32 +327,6 @@ export function addRequest(requestPath: string, handler: BriskControllerRequestH
327327
);
328328
}
329329

330-
331-
export function getPort(port: number): Promise<number> {
332-
let testServer = net.createServer().listen(port);
333-
return new Promise((resolve, reject) => {
334-
testServer.on('listening', () => {
335-
testServer.close((err) => {
336-
if (err) {
337-
logger.error('getPort close error! retry ...', err);
338-
resolve(getPort(port));
339-
return;
340-
}
341-
resolve(port);
342-
});
343-
});
344-
testServer.on('error', (err: any) => {
345-
if (err.code === 'EADDRINUSE') {
346-
logger.warn(`this port ${port} is occupied try another.`);
347-
resolve(getPort(port + 1));
348-
} else {
349-
logger.error('getPort error!', err);
350-
reject(err);
351-
}
352-
});
353-
});
354-
}
355-
356330
/**
357331
* 开始运行
358332
* @param port 端口,默认3000
@@ -379,8 +353,12 @@ export async function start(port: number = 3000, option?: BriskControllerOption)
379353
app.use(staticMidware(path.resolve(option.staticPath)));
380354
}
381355

356+
const realPort = await getPortPromise({
357+
port,
358+
});
359+
382360
if (option?.swagger) {
383-
addRequest('/swagger.json', getSwaggerHandler(port, globalBaseUrl), {
361+
addRequest('/swagger.json', getSwaggerHandler(realPort, globalBaseUrl), {
384362
title: 'swagger文件(仅开启swagger后有效)',
385363
description: '获取swagger.json',
386364
tag: {
@@ -401,11 +379,11 @@ export async function start(port: number = 3000, option?: BriskControllerOption)
401379

402380
app.use(router);
403381

404-
const realPort = await getPort(port);
405-
406382
await new Promise((resolve) => {
407383
server = app.listen(realPort, '0.0.0.0', () => {
408-
logger.info(`listen http://localhost:${port}`);
384+
logger.info(`listen http://0.0.0.0:${realPort}`);
385+
logger.info(`listen http://127.0.0.1:${realPort}`);
386+
logger.info(`listen http://localhost:${realPort}`);
409387
resolve(null);
410388
});
411389
});

src/core/router.ts

+5-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export class BriskControllerError extends Error {
2424

2525
status!: number;
2626

27-
text?: string;
27+
text?: string | any;
2828

2929
headers?: BriskControllerHeaders;
3030

@@ -41,6 +41,10 @@ export class BriskControllerError extends Error {
4141
this.status = _status;
4242
}
4343

44+
setBody(body: any) {
45+
this.text = body;
46+
}
47+
4448
}
4549

4650
// 路径、方法名、类型、处理器列表(按顺序执行)

0 commit comments

Comments
 (0)