2016-11-23 60 views
2

我有两个文件,其中一个是app.js,另一个是api.js。 在第一个文件我有:路由器没有在KOA2中定义

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路由器=需要( 'KOA路由器')

+0

它被解决了,我改变了从'koa-router'通过var进口koaRouter var Router = require('koa-router') – nole

+0

如果你有兴趣,你可以通过使用'babel'变压器来使'import'工作。 – gevorg

回答

0

显然的NodeJS不支持import/export语法和使用require将解决你的问题。

然而,通过使用babel变换器可以使import在Node.js上工作。

看看下面的答案更多信息https://stackoverflow.com/a/37601577/972240

+0

是的,我知道,我使用巴贝尔变压器,但我不知道为什么错误仍在继续。 – nole

2

进口,目前没有落实的NodeJS,也不是在最新的ES2015(ES6)的支持。 您需要使用像Babel这样的转译器才能在代码中使用导入。我建议避免使用转译器,因为它会导致生产中的性能问题随require而变,并且会起作用。

相关问题