-
-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathexample.js
64 lines (50 loc) · 1.75 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
57
58
59
60
61
62
63
64
'use strict'
let Koa = require('koa')
let Router = require('./index')
let app = new Koa()
let apiRouter = new Router({
prefix: '/api/v1'
})
let ctrl = {
show: function * (next) {
console.log('=')
console.log(this.originUrl)
console.log(this.origin)
console.log(this.hostname)
console.log(this.host)
this.body = `path is ${this.route.path}, haha`
this.body = `${this.body}!! :company is ${this.params.company}, yea`
yield next
}
}
let companies = apiRouter.createResource('companies', ctrl)
let profiles = apiRouter.createResource('profiles', ctrl)
let users = apiRouter.createResource('users', ctrl)
let docs = apiRouter.createResource('docs', ctrl)
let bars = apiRouter.createResource('bars', ctrl)
let cats = apiRouter.createResource('cats', ctrl)
let one = apiRouter.groupResources(companies, profiles)
one.forEach((route) => console.log(route.route))
let two = apiRouter.groupResources(users, cats)
two.forEach((route) => console.log(route.route))
let three = apiRouter.groupResources(one, two)
three.forEach((route) => console.log(route.route))
console.log(apiRouter.routes.length) // 0
apiRouter.addRoutes(three)
console.log(apiRouter.routes.length) // 7
apiRouter.addRoutes(docs, bars)
console.log(apiRouter.routes.length) // 21
let megalong = apiRouter.groupResources(docs, two, bars, three)
console.log(megalong.length) // 7
megalong.forEach((route) => console.log(route.route))
apiRouter.addRoutes(megalong)
console.log(apiRouter.getResource('cats'))
// listen for these routes
app.use(apiRouter.middleware())
app.listen(4321, () => {
let localhost = 'http://localhost:4321'
console.log(`Open ${localhost} and try:`)
apiRouter.routes.forEach((route) => {
console.log(`${route.method} ${localhost + route.path}`)
})
})