chanjs 2.0.1 → 2.0.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.
- package/README.md +5 -2
- package/common/global.js +7 -0
- package/index.js +4 -8
- package/middleware/setBody.js +0 -1
- package/package.json +2 -1
- package/utils/response.js +20 -26
package/README.md
CHANGED
@@ -20,7 +20,6 @@ Chanjs 是一个基于 Express5+ 构建的轻量级 MVC 框架,完全使用 Ja
|
|
20
20
|
|
21
21
|
```code
|
22
22
|
|- app
|
23
|
-
|- config
|
24
23
|
|- module
|
25
24
|
|- module1
|
26
25
|
|- controller
|
@@ -45,8 +44,12 @@ Chanjs 是一个基于 Express5+ 构建的轻量级 MVC 框架,完全使用 Ja
|
|
45
44
|
|- service
|
46
45
|
|- view
|
47
46
|
|- router.js
|
48
|
-
|
47
|
+
|- config
|
48
|
+
|- public
|
49
49
|
|- index.js
|
50
|
+
|-.env.dev
|
51
|
+
|-.env.prd
|
52
|
+
|
50
53
|
```
|
51
54
|
|
52
55
|
### 初始化过程
|
package/common/global.js
CHANGED
@@ -1,6 +1,9 @@
|
|
1
|
+
|
1
2
|
import path from "path";
|
2
3
|
import fs from "fs";
|
3
4
|
import { pathToFileURL } from 'url'; // 新增顶部导入
|
5
|
+
import dotenv from "dotenv";
|
6
|
+
|
4
7
|
const ROOT_PATH = process.cwd();
|
5
8
|
const APP_PATH = path.join(ROOT_PATH, "app");
|
6
9
|
const CONFIG_PATH = path.join(APP_PATH, "config");
|
@@ -18,6 +21,10 @@ global.__dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
18
21
|
//实现__filename
|
19
22
|
global.__filename = new URL(import.meta.url).pathname;
|
20
23
|
|
24
|
+
//加载环境变量
|
25
|
+
const envFile = process.env.ENV_FILE || '.env.prd'
|
26
|
+
dotenv.config({ path: path.join(ROOT_PATH, envFile) })
|
27
|
+
|
21
28
|
// app
|
22
29
|
global.APP_PATH = APP_PATH;
|
23
30
|
// config
|
package/index.js
CHANGED
@@ -29,13 +29,10 @@ class Chan {
|
|
29
29
|
getPackage,
|
30
30
|
loadController,
|
31
31
|
db,
|
32
|
-
z,
|
32
|
+
z,
|
33
33
|
validator,
|
34
|
-
};
|
34
|
+
};
|
35
35
|
static config = {}; //配置
|
36
|
-
//数据库
|
37
|
-
|
38
|
-
// static Router = express.Router; //路由
|
39
36
|
static Service = Service; //服务
|
40
37
|
static Controller = Controller; //控制器
|
41
38
|
static extend = {}; //组件扩展
|
@@ -71,7 +68,7 @@ class Chan {
|
|
71
68
|
appName,
|
72
69
|
version,
|
73
70
|
cookieKey,
|
74
|
-
|
71
|
+
BODY_LIMIT,
|
75
72
|
statics,
|
76
73
|
logger,
|
77
74
|
cors,
|
@@ -80,12 +77,11 @@ class Chan {
|
|
80
77
|
log(this.app, logger);
|
81
78
|
setFavicon(this.app);
|
82
79
|
setCookie(this.app, cookieKey);
|
83
|
-
setBody(this.app,
|
80
|
+
setBody(this.app, BODY_LIMIT);
|
84
81
|
setTemplate(this.app, { views, env });
|
85
82
|
setStatic(this.app, statics);
|
86
83
|
Cors(this.app, cors);
|
87
84
|
setHeader(this.app, { appName, version });
|
88
|
-
|
89
85
|
}
|
90
86
|
|
91
87
|
//数据库操作
|
package/middleware/setBody.js
CHANGED
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"type": "module",
|
3
3
|
"name": "chanjs",
|
4
|
-
"version": "2.0.
|
4
|
+
"version": "2.0.3",
|
5
5
|
"description": "chanjs基于express5 纯js研发的轻量级mvc框架。",
|
6
6
|
"main": "index.js",
|
7
7
|
"module": "index.js",
|
@@ -23,6 +23,7 @@
|
|
23
23
|
"body-parser": "^2.2.0",
|
24
24
|
"cookie-parser": "^1.4.7",
|
25
25
|
"cors": "^2.8.5",
|
26
|
+
"dotenv": "^17.2.1",
|
26
27
|
"dayjs": "^1.11.13",
|
27
28
|
"express": "^5.1.0",
|
28
29
|
"express-art-template": "^1.0.1",
|
package/utils/response.js
CHANGED
@@ -1,26 +1,20 @@
|
|
1
|
-
export
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
}
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
success: false,
|
22
|
-
msg: "ϵͳ�쳣",
|
23
|
-
code,
|
24
|
-
data,
|
25
|
-
};
|
26
|
-
};
|
1
|
+
export function parseJsonFields(obj) {
|
2
|
+
const result = {};
|
3
|
+
for (const key in obj) {
|
4
|
+
if (!obj.hasOwnProperty(key)) continue;
|
5
|
+
const value = obj[key];
|
6
|
+
// 如果是字符串,并且看起来像 JSON(以 { 或 [ 开头)
|
7
|
+
if (typeof value === 'string' && (value.startsWith('{') || value.startsWith('['))) {
|
8
|
+
try {
|
9
|
+
result[key] = JSON.parse(value);
|
10
|
+
} catch (e) {
|
11
|
+
console.warn(`JSON parse failed for field: ${key}`, e);
|
12
|
+
result[key] = value; // 保留原始值
|
13
|
+
}
|
14
|
+
} else {
|
15
|
+
result[key] = value;
|
16
|
+
}
|
17
|
+
}
|
18
|
+
|
19
|
+
return result;
|
20
|
+
}
|