2016-05-30 89 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和node v6.1.0的基本示例。 – gevorg

+0

假设代码位于index.js中,请安装node.js并运行它'node index.js'。你有没有尝试过? – Molda

回答

4

解决方案

我能找到解决办法,并描述了包括安装解决方案个模块

步骤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服务器后就像一个馅饼和importasyncawait被正确处理。

参考

+1

对于async/await部分,您现在可以使用本地实现,而无需传输代码。您需要node> = 7,并使用--harmony-async-await标志运行您的应用程序。 ES6导入还没有原生解决方案。 – Bertofer

+2

只需提一下,节点7.6默认带有async/await,因此不再需要--harmony-async-await标志:) – Bertofer

2

升级您的节点版本至少7.6,没有必要transpile你后r代码使用babel,这是生产中高度避免。节点> 7.6版本支持异步/等待,这是非常强大的。

相关问题