[英]Koa-router issue with / and /signin
/index.js: /index.js:
//... code
import routes from './routes/bind';
app.use(routes.routes(), routes.allowedMethods());
//... code
/routes/bind.js: /routes/bind.js:
'use strict';
import KoaRouter from 'koa-router';
const router = new KoaRouter();
// routes requests
import routes from './routes';
router.use(`/`, routes.routes(), routes.allowedMethods());
export default router;
/routes/routes.js: /routes/routes.js:
'use strict';
import KoaRouter from 'koa-router';
const router = new KoaRouter();
// home page
router.get(`/`, async function(ctx, next) {
ctx.body = 'home page';
});
// sign in page
router.get(`/signin`, async function(ctx, next) {
ctx.body = 'sign in page';
});
export default router;
127.0.0.1:3000
works (displays home page) 127.0.0.1:3000
作品(显示主页)
127.0.0.1:3000/signin
does not work (displays 404) 127.0.0.1:3000/signin
不起作用(显示404)
127.0.0.1:3000/signin
isn't working for some reason. 127.0.0.1:3000/signin
由于某种原因无法正常工作。 Any ideas? 有任何想法吗?
Currently 127.0.0.1:3000//signin
shows the sign in page. 当前
127.0.0.1:3000//signin
显示登录页面。 So remove the preceding /
from the route definition. 因此,从路由定义中删除前面的
/
。
The reason why 127.0.0.1:3000
works correctly is that koa-router can automatically handle trailing slashes. 127.0.0.1:3000
正常工作的原因是koa-router可以自动处理尾部斜杠。 For the home page, the route you're actually defining is //
, but koa-router can handle this. 对于主页,您实际上定义的路由是
//
,但是koa-router可以处理此路由。 However, for the sign in page the route is //signin
, but koa-router can't (nor should it) handle preceding slashes. 但是,对于登录页面,路由是
//signin
,但是koa-router不能(也不应该)处理前面的斜杠。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.