2016-05-30 5 views
1

ПроблемаКак запустить простое приложение с koa2?

Я пытаюсь запустить простой сервер HTTP с помощью , но есть проблемы с запуском.

Он использует , который, как ожидается, будет работать в будущих версиях , и мне было интересно, как я могу запустить его с помощью node v6.1.0?

Код

import Koa from 'koa';  
const app = new Koa(); 

// Setup handler. 
app.use(async ctx => { 
    ctx.body = "Hello World!"; 
}); 

// Start server. 
app.listen(3000); 

Выход

$ node --version 
v6.1.0 

$ node --harmony index.js 
C:\Users\gevor\WebstormProjects\untitled1\index.js:1 
(function (exports, require, module, __filename, __dirname) { import Koa from 'koa'; 
                   ^^^^^^ 
SyntaxError: Unexpected token import 
    at exports.runInThisContext (vm.js:53:16) 
    at Module._compile (module.js:511:25) 
    at Object.Module._extensions..js (module.js:550:10) 
    at Module.load (module.js:456:32) 
    at tryModuleLoad (module.js:415:12) 
    at Function.Module._load (module.js:407:3) 
    at Function.Module.runMain (module.js:575:10) 
    at startup (node.js:160:18) 
    at node.js:445:3 

Вопрос

Я хочу знать, как запустить мое приложение?

Похожие вопросы

+0

Какие у вас проблемы? Это весь код, который у вас есть? – Molda

+0

Я хочу знать, как настроить среду для запуска базового образца с помощью Koa v2 и узла v6.1.0. – gevorg

+0

Установите node.js и запустите его 'node index.js', предполагая, что код находится в index.js. Ты пробовал? – Molda

ответ

4

Решение

Я был в состоянии найти обходной путь и будет описывать решение, которое включает в себя установка Babel модуль

Шаг 1 - Установите Babel и необходимые пресеты

$ npm install babel-core --save 
$ npm install babel-preset-es2015-node5 --save 
$ npm install babel-preset-stage-3 --save 

Шаг 2 - Создать index.js файл с babel-core/register требованием

// set babel in entry file 
require('babel-core/register')({ 
    presets: ['es2015-node5', 'stage-3'] 
}); 

require('./app'); 

Шаг 3 - Поместите образец кода внутри app.js

import Koa from 'koa';  
const app = new Koa(); 

// Setup handler. 
app.use(async ctx => { 
    ctx.body = "Hello World!"; 
}); 

// Start server. 
app.listen(3000); 

После запуска node index.js сервер работает как пирог и import, async, await обрабатываются должным образом.

Ссылки

+1

Для части async/await теперь вы можете использовать встроенную реализацию, которая не требует перевода вашего кода. Вам нужно node> = 7, и запустите приложение с флагом --harmony-async-wait. На импорт ES6 нет собственного решения. – Bertofer

+2

Как раз отметить, Node 7.6 поставляется с async/await по умолчанию, поэтому больше не нужно для флага --harmony-async-await :) – Bertofer

2

Модернизированный версию узла, по меньшей мере, 7,6 после того, что нет никакой необходимости transpile вас r с использованием babel, который можно избежать в production.Node> версия версии 7.6 async/await, которая очень мощная.

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