请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

还是想问一下routersmap的问题

首先感谢老师在http://coding.imooc.com/learn/qa/119.html问题下的回答,但我还是推导不出来confs和controller,https://img1.sycdn.imooc.com/szimg//5983f1bc0001684208260256.jpg

这里的target应该是作用的类的实例吧,key是类定义的方法,那么routersMap似乎是一个{{target:routes文件夹下得到的实例,

method: 'get', path: path},路由的中间件函数} 这样一个对象的集合

这样怎么就能通过for..in..拿到conf和controller呢?

如果方便的话帮忙写一下详细的推导过程,谢谢


正在回答

插入代码

1回答

其实你把 Map 打印出来,就见端倪了,比如我本地有一个项目中的 routersMap 是这样的:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Map {
  { target: pagesController { [Symbol(prefix)]: 'api/v0' },
  method: 'get',
  path: '/login' } => [ [Function], [Function: index] ],
  { target: pagesController { [Symbol(prefix)]: 'api/v0' },
  method: 'get',
  path: '/query' } => [ [Function], [Function], [Function: query] ],
  { target: pagesController { [Symbol(prefix)]: 'api/v0' },
  method: 'get',
  path: '/reports' } => [ [Function], [Function: getReports] ],
  { target: pagesController { [Symbol(prefix)]: 'api/v0' },
  method: 'post',
  path: '/reports' } => [ [Function], [Function: saveReports] ],
  { target: GraphqlController { [Symbol(prefix)]: '' },
  method: 'all',
  path: '/graphql' } => [Function: allGraphql],
  { target: pagesController { [Symbol(prefix)]: 'pages' },
  method: 'get',
  path: '/index' } => [Function: index] }


里面的 key value 键值对可以以箭头函数 => 来隔离开看:


key 就是 {target: xx, method: xx, path: xx},把一个对象作为 key, value 就是一个 function 数组。


对于 for (let [ conf, controller ] of routersMap) {


conf 对应到的就是


{ target: pagesController { [Symbol(prefix)]: 'api/v0' },
  method: 'get',
  path: '/login' }


而 controller 对应到的是:


[ [Function], [Function: index] ]


对于 for xx of oo 的用法,可以再来了解下这个:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of


1 回复 有任何疑惑可以回复我~
  • 提问者 mylovef #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2017-08-06 13:26:35
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号