【问题标题】:koa-router error router.routes is not a functionkoa-router 错误 router.routes 不是函数
【发布时间】:2017-10-10 15:30:26
【问题描述】:

当我尝试使用他们网站上的koa-route 3.2.0 示例时,我收到错误消息router.routes is not a function

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');
}

我收到错误消息:

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

当我尝试改变时

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

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

我收到错误消息:

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

【问题讨论】:

    标签: javascript node.js koa koa-router


    【解决方案1】:

    您似乎安装了较新的版本,可在https://github.com/alexmingoia/koa-router/tree/master 获得

    您需要改用new Router()

    您似乎还混淆了koa-routerkoa-route,这是两个不同的包。

    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());
    

    【讨论】:

    • 并使用koa-route 而不是koa-router :/
    猜你喜欢
    • 2018-06-20
    • 2021-06-29
    • 2015-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 1970-01-01
    • 2022-06-29
    相关资源
    最近更新 更多