2016-11-23 1 views
2

私は2つのファイルを持っています。そのうちの1つはapp.jsで、もう1つは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); 

私は実行するとプロジェクトのエラーメッセージがスローされます。Routerが定義されていない私が持っている最初のファイルで 。

しかし、両方のファイルを一緒に書き込むと、アプリケーションはうまくいきます。

誰もが問題を知っていますか?

私はのvarルータで解決してきた=

+0

これは解決されました。私は 'koa-router'から変更することができます。ko-router = require( 'koa-router') – nole

+0

興味があれば、 'babel'トランスを使って' import'を動作させることもできます。 – gevorg

答えて

0

が明らかNodejsがimport/export構文をサポートしていないとrequireを使用して、あなたの問題を解決します( 'KOA-ルータを')が必要です。

babel変圧器を使用して、Node.jsでimportを動作させることは可能です。

は、より多くの情報https://stackoverflow.com/a/37601577/972240

+0

はい、私はバーベルトランスを使用していますが、なぜエラーが続くのかわかりません。 – nole

2

インポートは現在nodejsに実装されていない、どちらもそれは最新のES2015(ES6)でサポートされていないため、次の答えを探してください。 バベルのようなトランスバイザーを使用してcode.Iのアドバイスでインポートを使用する必要があります。これは、トランスペアラーが生産上のパフォーマンス上の問題を引き起こすのを避けるために必要なだけで動作します。

関連する問題