2016-05-30 7 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をインストールし、コードがindex.jsであると仮定して、 'node index.js'を実行します。やってみました? – Molda

答えて

4

ソリューション

私は、回避策を見つけることができたとをインストール含んで解決策を説明しますモジュール

ステップ1 - あなたのサンプルコードを入れて - babel-core/register要件

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

require('./app'); 

ステップ3index.jsファイルを作成する - Babelと必要なプリセット

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

ステップ2をインストールします。内部:app.js

node index.jsサーバーのパイのような作品や importを実行した後
import Koa from 'koa';  
const app = new Koa(); 

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

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

asyncawaitが適切に処理されています。

参照

+1

async/awaitの部分では、コードを翻訳する必要がないネイティブの実装を使用できます。あなたはnode> = 7が必要で、--harmony-async-awaitフラグを付けてあなたのアプリケーションを実行してください。 ES6のインポートにはまだネイティブな解決策はありません。 – Bertofer

+2

ちょうど言及すると、ノード7.6にはデフォルトでasync/awaitが付属しているので、--harmony-async-awaitフラグはもう必要ありません:) – Bertofer

2

あなたをtranspileする必要がないことをした後、少なくとも7.6にあなたのノードのバージョンをアップグレード非常に強力です.Node> 7.6バージョンのサポートasync/awaitは非常に強力です。

関連する問題