路由器未在KOA2

时间:2016-11-23 16:32:55

标签: node.js koa-router koa2

我有两个文件,其中一个是app.js,另一个是api.js. 在我的第一个文件中:

  app.use(setHeader)
  app.use(api.routes())
  app.use(api.allowedMethods())

在api.js中我有:

import KoaRouter from 'koa-router';
const api = new Router();

//Validatekey
const validateKey = async (ctx, next) => {
const { authorization } = ctx.request.headers;
console.log(authorization);
if (authorization !== ctx.state.authorizationHeader) {
  return ctx.throw(401);
}
   await next();
}

api.get('/pets', validateKey, pets.list);

当我运行项目时抛出一条错误消息:未定义路由器。

但如果我把两个文件一起写,应用程序就可以了。

有人知道这个问题吗?

我用 var Router = require('koa-router')解决了

2 个答案:

答案 0 :(得分:2)

导入当前未在nodejs中实现,最新的ES2015(ES6)也不支持。 您将需要使用像Babel这样的转换器来使用代码中的import。我建议避免使用转换器,因为它会导致生产中出现性能问题,只需使用require即可。

答案 1 :(得分:0)

显然Nodejs不支持import / export语法,使用require可以解决您的问题。

但是,可以使用import变换器使babel在Node.js上运行。

查看以下答案以获取更多信息https://stackoverflow.com/a/37601577/972240