You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+198-8Lines changed: 198 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,13 +3,13 @@
3
3
* @Date: 2023-02-13 17:02:26
4
4
* @Description: Coding something
5
5
-->
6
-
## Sener
6
+
#[Sener](https://github.com/theajack/sener)
7
7
8
8
Easy-to-use And Powerful nodejs http server
9
9
10
10
Documentation will continue to be improved
11
11
12
-
###Basic Use
12
+
##1. Basic Use
13
13
14
14
```
15
15
npm i sener
@@ -22,7 +22,33 @@ import {Sener} from 'sener';
22
22
newSener();
23
23
```
24
24
25
-
use router:
25
+
options:
26
+
27
+
```js
28
+
newSener({
29
+
port:9000, // port: default value is 9000
30
+
middlewares: [], // Sener middlewares
31
+
});
32
+
```
33
+
34
+
Sener stores all files in the sener-data folder
35
+
36
+
In the development environment, the root directory is the directory where the current cmd is executed, and in the production environment, the root directory is homedir
37
+
38
+
39
+
```js
40
+
constBASE_SENER_DIR=path.resolve(
41
+
`${IS_DEV?process.cwd() :homedir()}`,
42
+
`./sener-data`
43
+
);
44
+
```
45
+
46
+
47
+
## 3. Middlewares
48
+
49
+
### 3.1 router
50
+
51
+
Router middleware
26
52
27
53
```js
28
54
import {Sener, Router} from'sener';
@@ -41,7 +67,9 @@ new Sener({
41
67
});
42
68
```
43
69
44
-
### Use Json middleware
70
+
### 3.2 json
71
+
72
+
Use a JSON file as a database
45
73
46
74
```
47
75
npm i sener sener-json
@@ -64,11 +92,22 @@ const router = new Router({
64
92
},
65
93
});
66
94
newSener({
67
-
middlewares: [router, newJson({dir:'you_app_name'})], // you_app_name is optional, default to sener dir root as ~/sener-json-db/
95
+
middlewares: [router, newJson()], // you_app_name is optional, default to sener dir root as ~/sener-json-db/
68
96
});
69
97
```
70
98
71
-
### Use Cors middleware
99
+
options
100
+
101
+
```js
102
+
newJson({
103
+
dir:'', // directory for save json files. default value is ''
104
+
format:false, // Whether to format the JSON file. Default value: The development environment is false and the production environment is true
105
+
})
106
+
```
107
+
108
+
### 3.3 cors
109
+
110
+
Middleware that handles cross-origin requests
72
111
73
112
```js
74
113
import {Sener, Cors} from'sener';
@@ -78,7 +117,17 @@ new Sener({
78
117
});
79
118
```
80
119
81
-
### Use Static middleware
120
+
options
121
+
122
+
```js
123
+
newCors({
124
+
// headers: Set your custom headers
125
+
})
126
+
```
127
+
128
+
### 3.4 static
129
+
130
+
Middleware that handles static resources
82
131
83
132
```js
84
133
import {Sener} from'sener';
@@ -89,10 +138,151 @@ new Sener({
89
138
});
90
139
```
91
140
141
+
options
142
+
143
+
```js
144
+
newStatic({
145
+
dir:'./public', // Static directory, default value is ./public
146
+
})
147
+
```
148
+
149
+
### 3.5 form
150
+
151
+
Middleware that handles formdata and file uploads
152
+
153
+
```js
154
+
import {Sener, Router} from'sener';
155
+
import {Form} from'sener-form';
156
+
157
+
constrouter=newRouter({
158
+
'post:/upload': ({ formData, files }) => {
159
+
return { formData, files }
160
+
},
161
+
});
162
+
163
+
newSener({
164
+
middlewares: [newForm(), router],
165
+
// new Form({dir}); dir default value is ./public
166
+
});
167
+
```
168
+
169
+
options
170
+
171
+
```js
172
+
newForm({
173
+
dir:'./public/upload', // File upload directory, default value is ./public/upload
dir:'', // The directory where the log file is stored. default value is '', use root directory
222
+
useConsole:false, // Whether to enable console.log Print logs when the service is running. It is not recommended to turn on the production environment. default value is false
223
+
maxRecords:10000, // The maximum number of stored records for a single log file , default value is 10000
224
+
level:-1, // The level of log printing, logs with a level less than this number will not be printed
225
+
// level?: (()=>number) Level can also be a method for dynamically obtaining level values, typically used in conjunction with config middleware
226
+
})
227
+
```
228
+
229
+
### 3.7 config
230
+
231
+
Middleware that supports flexible use of JSON configuration files
writeConfig('level', 5) // write config with writeConfig
244
+
onConfigChange(({key, value, prev}) => { // on config change
245
+
console.log(key, value, prev);
246
+
})
247
+
return { query }
248
+
},
249
+
});
250
+
251
+
constconfig=newConfig();
252
+
253
+
// Use config instance
254
+
255
+
config.onConfigChange(({key, value, prev}) => { // on config change
256
+
console.log(key, value, prev);
257
+
});
258
+
259
+
config.data.level(); // read config
260
+
261
+
config.data.level(5); // write config
262
+
263
+
config.writeConfig('level', 2); // write config with writeConfig
264
+
265
+
newSener({
266
+
middlewares: [config, router],
267
+
});
268
+
```
269
+
270
+
options
271
+
272
+
```ts
273
+
newConfig({
274
+
dir: '', // directory for save config files. default value is ''
275
+
file: 'default', // file name of your config file. default value is 'default'
276
+
// file: ['c1', 'c2'], // Passing in an array indicates that multiple profiles are used
277
+
format: false, // Whether to format the JSON file. Default value: The development environment is false and the production environment is true
278
+
})
279
+
```
280
+
281
+
92
282
## Custom Middleware
93
283
94
284
Documentation will continue to be improved
95
285
96
-
For now please refer to [json-middleware](https://github.com/theajack/sener/blob/master/packages/json/src/json-middleware.ts) and [Router](https://github.com/theajack/sener/blob/master/packages/sener/src/middleware/inner-middlewares/router/router.ts)
286
+
For now please refer to [middleware packages](https://github.com/theajack/sener/blob/master/packages)
0 commit comments