-
Notifications
You must be signed in to change notification settings - Fork 0
/
example.js
56 lines (43 loc) · 1.39 KB
/
example.js
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
const Koa = require('koa');
const koaPug = require('koa-pug-view');
const app = new Koa();
// The flowing are considered TOTALLY same:
koaPug(app); // default
koaPug(app, 'views', false, 'render'); // using listed arguments
koaPug(app, {
viewDir: 'views',
needCache: false,
methodName: 'render',
}); // using option object
app.use((ctx, next) => {
ctx.state.firstname = 'John';
ctx.render('user.pug', { lastname: 'Smith' });
});
app.listen(3003);
// -----options-----
// Using listed arguments:
// koa-pug-view returns a function , and receives 4 arguments
// one required, the left 3 not required
// app -- koa application instance
// required
// viewDir -- where pug files locate in
// it should be directly inside 'Project root directory'
// default to 'views'
// not required
// needCache -- whether enable the cache ability(compiled functions be cached)
// default to false
// not required
// if 'process.env.NODE_ENV' is set to 'production'
// it will ALWAYS be true
// methodName -- the method name add to app.context(the prototype from which ctx is created)
// default to 'render'
// not required
// 2 Using option object
// it can also receive an option object as the 2nd argument
// signature as following, usage is same as above
// {
// viewDir?: string,
// needCache?: boolean,
// methodName?: string,
// }
// the 2nd option objectm will overwrite the other listed arfguments