2017-10-10 9 views
0

Lorsque je tente d'utiliser koa-route 3.2.0 exemple de leur site web, je suis arrivé message d'erreur router.routes is not a functionerreur koa-routeur de router.routes n'est pas une fonction

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

const app = new Koa(); 
app.use(logger()); 

router.get('/users', (ctx, next) => { 
    ctx.response.body =`<h1>Hello!</h1>`; 
}); 

app.use(router.routes()) 
    .use(router.allowedMethods()); 

// don't listen to this port if the app is required from a test script 
if (!module.parent) { 
    app.listen(1337); 
    console.log('listening on port: 1337'); 
} 

Je suis message d'erreur:

app.use(router.routes()) 
      ^

TypeError: router.routes is not a function 
    at Object.<anonymous> (/Projects/shoucast-front-end-prototype/script/server.js:40:16) 
    at Module._compile (module.js:569:30) 
    at Object.Module._extensions..js (module.js:580:10) 
    at Module.load (module.js:503:32) 
    at tryModuleLoad (module.js:466:12) 
    at Function.Module._load (module.js:458:3) 
    at Function.Module.runMain (module.js:605:10) 
    at startup (bootstrap_node.js:158:16) 
    at bootstrap_node.js:575:3 

Lorsque je tente de changer

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

à

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

J'obtenu un message d'erreur:

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

TypeError: require(...) is not a function 
    at Object.<anonymous> (/Projects/shoucast-front-end-prototype/script/server.js:2:36) 
    at Module._compile (module.js:569:30) 
    at Object.Module._extensions..js (module.js:580:10) 
    at Module.load (module.js:503:32) 
    at tryModuleLoad (module.js:466:12) 
    at Function.Module._load (module.js:458:3) 
    at Function.Module.runMain (module.js:605:10) 
    at startup (bootstrap_node.js:158:16) 
    at bootstrap_node.js:575:3 

Répondre

1

On dirait que vous avez installé la nouvelle version, disponible à https://github.com/alexmingoia/koa-router/tree/master

Vous devez utiliser new Router() à la place.

Apparemment, vous mélangez koa-router avec koa-route, qui sont deux packages différents.

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

const app = new Koa(); 
const router = new Router(); 

router.get('/', function (ctx, next) { 
    // ctx.router available 
}); 

app 
    .use(router.routes()) 
    .use(router.allowedMethods()); 
+0

et utilisé 'koa-route' à la place de' koa-router': / – Matt