繁体   English   中英

koa-router错误router.routes不是功能

[英]koa-router error router.routes is not a function

当我尝试从其网站上使用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

看起来您已经安装了更新的版本,可以从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());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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