首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何摆脱koa-router在没有定义的情况下添加的“幻影”路由

如何摆脱koa-router在没有定义的情况下添加的“幻影”路由
EN

Stack Overflow用户
提问于 2016-09-14 06:35:02
回答 1查看 174关注 0票数 1

我开始开发非常小的应用程序,并决定使用koa框架和koa-router (在未来的一些其他中间件中)

问题是,在指定了我的路由之后,出现了一个奇怪的“包罗万象”,没有方法,没有url路由。

代码语言:javascript
复制
// excerpt of /app/routes/admin

var router = require('koa-router')().prefix('/admin');

router.get('/a.html', function *(next){
  return this.render('a', {some: 'data'})
})

router.get('/index.html', function *(next){
  return this.render('index', {})
})

router.get('/b.html', function *(next){
  return this.render('b', {})
})

module.exports = router

代码语言:javascript
复制
// excerpt of Main App
    
    // routes
    var adminRouter =  require('/app/routes/admin')
    this.app.use( adminRouter.routes())
    this.app.use( adminRouter.allowedMethods())
    
    // Checking Routes
    console.log(adminRouter.stack.map(i => i.path));

..。它在运行时会产生以下结果:

代码语言:javascript
复制
    [ '(.*)',
  '/admin/a.html',
  '/admin/index.html',
  '/admin/b.html' ]

地狱(.*)是从哪里来的?

另外,如果我启用了对koa-router的调试,我会得到

代码语言:javascript
复制
  koa-router defined route HEAD,GET /admin/list.html +46ms
  koa-router defined route HEAD,GET /admin/index.html +1ms
  koa-router defined route HEAD,GET /admin/queries.html +0ms
  koa-router defined route  (.*) +1ms

,所以让事情变得更奇怪,表明此路由没有任何类型的关联方法

知道“幻影”这个词条吗?

EN

回答 1

Stack Overflow用户

发布于 2016-09-18 09:08:27

好的。不完全是一个解决方案,但至少在使用调试器挖掘之后,它不再是幻影了,似乎当一个中间件被“全局”添加到路由器时,即当你“使用”它时,路由是不一样的

代码语言:javascript
复制
router.use(anotherRouter.routes()

这是非常有意义的,就好像您以这种方式“全局”添加了一个中间件,您希望每个请求都会通过它

我打开这个问题是因为我的所有路由都收到了404 not found,并怀疑这一个是攻击者,但最终它是针对几个不同的问题(不可到达的路径、不存在的文件、错误的配置等)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39479972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档