如何摆脱“幽灵”?koa-router添加而未定义的路由
How to get rid of a "phantom" route that koa-router adds without being defined
我开始开发一个非常小的应用程序,并决定使用koa框架与koa-router(在一些其他中间件在未来)
问题是,在指定了我的路由之后,出现了一个奇怪的全集,没有方法,没有url路由
// 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
// 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));
…当运行时,它给出以下结果:
[ '(.*)',
'/admin/a.html',
'/admin/index.html',
'/admin/b.html' ]
(.*)到底是从哪里来的?
同样,如果我打开koa-router的调试,我得到
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
,更奇怪的是,这表明该路由没有任何类型的相关方法
你知道那个"幻影"条目吗?
OK。不完全是解决方案,但至少它不再是幻影了经过调试器的挖掘,似乎路由失效时,一个中间件被"全局"添加到路由器,即当你"使用"它
router.use(anotherRouter.routes()
这非常有意义,就好像您以这种方式"全局"添加中间件一样,您期望每个请求都经过它
我打开了这个问题,因为我得到404没有找到我所有的路由,并怀疑这是罪犯,但最终它是为几个不同的问题(不可达的路径,不存在的文件,错误配置等)
相关文章:
- jQuery验证器添加方法未定义
- 为什么这个功能打印“;未定义的未定义的“;作为联系人名称,添加“新对象”
- 未捕获的引用错误:添加网络代码时未定义 $
- 在 JavaScript 对象中添加子对象时获取“无法设置未定义的属性'项目'”
- 未捕获的引用错误:添加未在javascript代码中定义
- "未捕获的类型错误:未定义的不是函数“;当向输入字段添加值时
- Javascript:添加键值对文字,给出未定义的结果
- 如何将未定义的元素添加到数组中
- JavaScript-为什么当我向表中添加新列时,它会说“;未定义的“;在额外的细胞中
- 在数据表的新行中添加按钮,变得未定义
- AmChart - 未定义添加标题
- 尝试添加到根父节点时出现 KendoUI 未定义节点问题
- JQuery UI AutoComplete:.data(..) 未定义 [但仅当我添加第二个自动完成框时]
- 使用 Javascript 将样式动态添加到样式表,但我收到“无法读取未定义的属性'长度'”错误
- $.each() 添加“未定义”值
- 角度选择添加未定义的选项
- JavaScript/JQuery:添加未定义字段中的数字(带0)
- JavaScript target=_blank添加未定义的url
- For循环添加未定义条目's
- jquery数据表添加未定义的行