node.js - KOA2 中未定义路由器

标签 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')

最佳答案

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

关于node.js - KOA2 中未定义路由器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40769699/

相关文章:

javascript - 在 Javascript 服务器/客户端中共享对象定义

node.js - Dynamodb batchWrite 无法在带有异步的 Lambda 中工作

node.js - 在连接字符串密码字段中使用 Promise 返回数据库未连接

node.js - 图像文件下载或在浏览器中显示

javascript - Koa路由器: How to get query string params?

koa - 如何在 koa 2 中有条件地重定向一些 URL

javascript - 使用 Async/Await 和 Puppeteer 映射数组以返回结果

node.js - nodejs setTimeout内存泄漏?

javascript - 如何跳过或跳转中间件? ( Node )

javascript - 为什么Koa ctx.body在if语句中不起作用?