简体   繁体   English

/和/ Signin的Koa-router问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM