2016-11-23 59 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而變,並且會起作用。

相關問題