wok-server 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,7 +16,7 @@ function getConfig() {
16
16
  tlsCert: ''
17
17
  }, 'SERVER', {
18
18
  port: [(0, validation_1.notNull)(), (0, validation_1.min)(80), (0, validation_1.max)(65535)],
19
- timeout: [(0, validation_1.notNull)(), (0, validation_1.min)(1000), (0, validation_1.max)(60000)],
19
+ timeout: [(0, validation_1.notNull)(), (0, validation_1.min)(1000), (0, validation_1.max)(600000)],
20
20
  accessLog: [(0, validation_1.notNull)()],
21
21
  corsAllowOrigin: [(0, validation_1.notBlank)()],
22
22
  corsAllowHeaders: [(0, validation_1.notBlank)()],
package/dist/mvc/index.js CHANGED
@@ -1,12 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.stopWebServer = exports.startWebServer = void 0;
3
+ exports.stopWebServer = exports.startWebServer = exports.removeServerStaticCache = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const server_1 = require("./server");
6
6
  /**
7
7
  * 服务实例.
8
8
  */
9
9
  let SERVER;
10
+ /**
11
+ * 删除服务器静态缓存
12
+ * @param path 路径,必须以斜杠开头,如:/assets/index.js
13
+ */
14
+ async function removeServerStaticCache(path) {
15
+ if (SERVER) {
16
+ SERVER.removeServerStaticCache(path);
17
+ }
18
+ }
19
+ exports.removeServerStaticCache = removeServerStaticCache;
10
20
  /**
11
21
  * 启动 web服务
12
22
  * @param opts
@@ -241,6 +241,15 @@ class WokServer {
241
241
  }
242
242
  return res;
243
243
  }
244
+ /**
245
+ * 删除服务器端静态资源缓存
246
+ * @param path
247
+ */
248
+ removeServerStaticCache(path) {
249
+ if (this.staticHandler) {
250
+ this.staticHandler.removeServerCache(path);
251
+ }
252
+ }
244
253
  /**
245
254
  * 停止
246
255
  */
@@ -351,5 +351,15 @@ class StaticHandler {
351
351
  }
352
352
  return { filePath, stats: fileStat, maxAge: matchedRule.cacheAge };
353
353
  }
354
+ /**
355
+ * 删除服务器端静态资源缓存
356
+ * @param path
357
+ */
358
+ removeServerCache(path) {
359
+ if (this.cache) {
360
+ this.cache.remove(path);
361
+ this.cache.remove(`gzip-${path}`);
362
+ }
363
+ }
354
364
  }
355
365
  exports.StaticHandler = StaticHandler;
@@ -9,7 +9,7 @@
9
9
  | :------------- | :--------------------------------------------------------------- |
10
10
  | registerConfig | 注册配置信息,注册会立即匹配环境变量并返回映射了属性后的配置对象 |
11
11
  | getConfig | 获取配置信息 |
12
- | registerConfig | 根据环境变量生成配置信息,但是不注册 |
12
+ | generateConfig | 根据环境变量生成配置信息,但是不注册 |
13
13
 
14
14
  ## 配置类型和实例对象
15
15
 
@@ -17,7 +17,7 @@
17
17
  ├──db-migration 数据库迁移文件,使用 mysql 时才有
18
18
  ├──src 源码目录
19
19
  │ ├──auth 授权
20
- │ │ ├──auth.ts 授权信实体配置
20
+ │ │ ├──auth.ts 授权实体配置
21
21
  │ │ ├──auth-interceptor.ts 授权拦截器
22
22
  │ │ ├──create-auth.ts 创建授权接口(/auth/create)
23
23
  │ │ ├──ccu-task.ts 在线人数统计任务
@@ -5,7 +5,7 @@ i18n 对象是全局的,在处理请求时如有异步操作,可通过绑定
5
5
 
6
6
  ## 无国际化处理
7
7
 
8
- 默认情况下国际化组件会根据环境来自动更新语言,但是如果是在容器和虚拟中使用,
8
+ 默认情况下国际化组件会根据环境来自动更新语言,但是如果是在容器和虚拟机中使用,
9
9
  那么很可能镜像默认使用的是英文。
10
10
 
11
11
  如果项目无做国际化的需要,并且要保证框架中的提示信息必须是中文,可以在程序中指定环境变量 LANG。
@@ -306,7 +306,7 @@ export const userUpdateHandler = createJsonHandler<Form>({
306
306
  })
307
307
  ```
308
308
 
309
- 但是不要使用缓存组件来获取缓存内容,因为为了提升性能,缓存的内容是 Bufer
309
+ 但是不要使用缓存组件来获取缓存内容,因为为了提升性能,缓存的内容是 Buffer
310
310
  当使用缓存时避免再次执行对象序列化,并不是 handle 方法返回的对象。
311
311
 
312
312
  ### 二进制(Binary)上传
@@ -577,10 +577,15 @@ dir 参数是映射文件目录的地址,可以是绝对路径,也可以是
577
577
  | SERVER_STATIC_CACHE_ENABLE | 是否启用服务器缓存,默认 false |
578
578
  | SERVER_STATIC_CACHE_MAX_AGE | 服务器缓存时间,单位秒,默认 600 |
579
579
  | SERVER_STATIC_CACHE_MAX_FILE_SIZE | 最大可缓存的文件大小,支持语义化格式,如 10m 和 100k 等,默认 10m |
580
- | SERVER_STATIC_CACHE_MAX_SIZE | 缓存最大空间,一旦超出将执行清理,同上支持语义化格式,默认 100, |
580
+ | SERVER_STATIC_CACHE_MAX_SIZE | 缓存最大空间,一旦超出将执行清理,同上支持语义化格式,默认 100m |
581
581
 
582
- 静态文件的服务器缓存不支持清除,只能等待过期,或者空间满被清理掉。所以,只适合缓存长期不需要改变的文件,
583
- 目前还没有支持按规则来缓存,后续的版本有可能会考虑。
582
+ 0.3.2 版本新增加了 removeServerStaticCache 函数,可以主动删除指定的服务器端静态缓存。
583
+
584
+ ```ts
585
+ import {removeServerStaticCache} from 'wok-server'
586
+
587
+ removeServerStaticCache('/assets/index.js')
588
+ ```
584
589
 
585
590
  ### 请求日志
586
591
 
@@ -148,7 +148,7 @@ export const tableUser: Table<User> = {
148
148
 
149
149
  ### 类型映射
150
150
 
151
- 实体类字段和查询方法的返回对象的字段有一套类型映射规则,这个需要写的时间注意,**数据库里是什么类型,就必须写对应的 js 原生类型**。
151
+ 实体类字段和查询方法的返回对象的字段有一套类型映射规则,这个需要写的时候注意,**数据库里是什么类型,就必须写对应的 js 原生类型**。
152
152
  类型映射逻辑不支持修改,下面是对照表:
153
153
 
154
154
  | js 原生类型 | mysql 字段类型 |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wok-server",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "packageManager": "pnpm@8.9.0",
5
5
  "description": "一个基于 NodeJs 和 TypeScript 的后端框架,轻量级、克制、简洁。A lightweight, restrained, and concise backend framework based on Node.js and TypeScript.",
6
6
  "scripts": {
@@ -1,4 +1,9 @@
1
1
  import { WokServerOpts } from './server';
2
+ /**
3
+ * 删除服务器静态缓存
4
+ * @param path 路径,必须以斜杠开头,如:/assets/index.js
5
+ */
6
+ export declare function removeServerStaticCache(path: string): Promise<void>;
2
7
  /**
3
8
  * 启动 web服务
4
9
  * @param opts
@@ -78,6 +78,11 @@ export declare class WokServer {
78
78
  * @returns
79
79
  */
80
80
  private getIpv4List;
81
+ /**
82
+ * 删除服务器端静态资源缓存
83
+ * @param path
84
+ */
85
+ removeServerStaticCache(path: string): void;
81
86
  /**
82
87
  * 停止
83
88
  */
@@ -69,4 +69,9 @@ export declare class StaticHandler {
69
69
  * @returns 返回被查询到的文件信息,如果找不到则返回 null
70
70
  */
71
71
  private findFile;
72
+ /**
73
+ * 删除服务器端静态资源缓存
74
+ * @param path
75
+ */
76
+ removeServerCache(path: string): void;
72
77
  }