-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathindex.js
53 lines (46 loc) · 1.01 KB
/
index.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
'use strict'
import koa from 'koa'
import Router from 'koa-router'
import RouteMapper from '../..'
const app = koa()
const router = new Router()
const routeMapper = new RouteMapper()
routeMapper
.root('welcome#index')
.get('about', {
to: 'welcome#about'
})
.resources('posts', () => {
routeMapper.resources('comments')
})
.scope({
path: '~:username?',
module: 'users',
as: 'user'
}, () => {
routeMapper.root('welcome#index')
})
routeMapper.routes.forEach(r => {
const { controller, action } = r
try {
let c = require(__dirname + '/controllers/' + controller + '.js')
if (c) {
c = c.default || c
r.verb.forEach(m => {
let a
if (a = c[action]) {
if (!Array.isArray(a)) {
a = [a]
}
console.log(r.path, controller, action)
router[m](r.path, ...a)
}
})
}
} catch (e) {
console.log(e)
}
})
app.use(router.routes())
console.log('Open http://localhost:3300.')
app.listen(3300)