2016-11-23 6 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 라우터로 해결 한 =

+0

var router = require ('koa-router') – nole

+0

에 의해 'koa-router'에서 변경 가져 오기 koaRouter가 있습니다. 관심이 있으시면'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)에서 지원되지 않는 내용은 다음 답을 찾아보십시오. 생산자의 성능 문제를 일으키기 때문에 transpiler를 피하는 code.I 조언을 가져 오기 위해 바벨 (Babel)과 같은 변환기 (transpiler)를 사용해야합니다.