2016-11-23 22 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); 

При запуске проекта сообщение об ошибке бросить: маршрутизатор не определен.

Но если я напишу оба файла вместе, приложение будет прекрасным.

Кто-нибудь знает проблему?

Я решил с вар Router = требуется ('КоА-маршрутизатор')

+0

Было решено, что у меня есть импорт изменений koaRouter от «koa-router» от var Router = require ('koa-router') – nole

+0

Если вы заинтересованы, вы можете сделать работу 'import' тоже с помощью трансформаторов' babel'. – gevorg

ответ

0

Очевидно Nodejs не поддерживает import/export синтаксис и использование require будет решить вашу проблему.

Однако можно сделать import работы с Node.js, используя babel трансформаторы.

Посмотрите следующий ответ для получения дополнительной информации https://stackoverflow.com/a/37601577/972240

+0

Да, я знаю, я использую babel-трансформатор, но я не знаю, почему ошибка продолжалась. – nole

2

импорта не в данное время не nodejs, ни он поддерживается в последнем ES2015 (ES6). Вам нужно будет использовать транспилер, такой как Babel, для использования импорта в коде. Я советую избегать транспилеров, так как это вызывает проблемы с производительностью при производстве, просто перейдите с требованием, и он будет работать.

 Смежные вопросы

  • Нет связанных вопросов^_^