2016-11-29 9 views
1

Мое приложение [email protected] имеет следующую структуру. Я использую [email protected] для маршрутизации:Подпрограммы, не работающие в отдельном файле с помощью koa-router

./app.js

const Koa = require('koa'); 
const router = require('koa-router')(); 

const index = require('./routes/index'); 

const app = new Koa(); 

router.use('/', index.routes(), index.allowedMethods()); 
app 
    .use(router.routes()) 
    .use(router.allowedMethods()); 

module.exports = app; 

./routes/index.js

const router = require('koa-router')(); 

router.get('/', (ctx, next) => { 
    ctx.body = 'Frontpage'; 
}); 

router.get('/hello', (ctx, next) => { 
    ctx.body = 'Hello, World!'; 
}); 

module.exports = router; 

Я получаю Not Found ошибку на /hello маршруте.

Зависимость от версии:

"dependencies": { 
    "koa": "^2.0.0-alpha.7", 
    "koa-router": "^7.0.1", 
}, 

Это то же самое с koa-router v7.1.0.

Благодарим за помощь!

ответ

0

Реструктуризация приложения, как это решает проблему. Наверное, сейчас просто время, чтобы умереть Express.

./app.js

import Koa from 'koa'; 
import index from './routes/index'; 

const app = new Koa(); 

app.use(index.routes(), index.allowedMethods()); 

export default app; 

./routes/index.js

import Router from 'koa-router'; 

const router = new Router(); 
//const router = new Router({ prefix: '/subroute' }) 

router.get('/', (ctx, next) => { 
    ctx.body = 'Frontpage'; 
}); 

router.get('/hello', (ctx, next) => { 
    ctx.body = 'Hello, World!'; 
}); 

export default router;