express接入kvl
如果你现有一个express项目,并且想使用kvl,可以通过给kvl传入一个express实例化对象的方式,让kvl自动接入现在现有项目,实现无缝接入
需要注意的是,通过注入express的方式,不支持以下功能
- port参数失效
- 不支持设置headers
- 不支持kvl.Request.router
- 不支持kvl插件内对express方法的扩展
import kvl from 'kvl';
import { Main ,Router, config } from 'kvl';
import * as express from 'express';
import * as session from 'express-session';
import * as compression from 'compression';
const app = express();
const serve = http.createServer(app);
serve.listen(5544);
@Router({})
class HelloWord{
private msg: string = 'Hello, world'
@config({ url: '/hello', name: 'hello', type: 'get' })
private hello(req: kvl.Request, res: kvl.Response): void {
res.end(`<h1>${this.msg}</h1>`)
}
}
//这里返回的是传入的express实例化对象
Main({
baseUrl: '/express',
router: [ HelloWord ],
//设置express
express(app: Application){
app.use(compression())
app.use(session({
secret: 'secret',
resave: false,
saveUninitialized: true,
cookie : {
maxAge : 1000 * 60 * 30, // 设置 session 的有效时间,单位毫秒
}
}))
},
}, app)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40