如何与koa2运行简单的应用程序?

问题

我试图运行简单的http服务器使用koa2 ,但运行它有问题。

它使用es6 ,预计在未来的node.js版本中工作,我想知道如何可以与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 

我想知道如何运行我的应用程序?

类似的问题

  • https://github.com/koajs/koa/issues/621
  • https://github.com/koajs/koa/issues/572

我能够find解决办法,并将描述包括安装Babel模块的解决scheme

第1步 – 安装Babel和所需的预设

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

第2步 – 使用babel-core/register要求创buildindex.js文件

 // 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正在处理正确。

参考

  • koa2来源
  • 文档应该包括一个babelconfiguration的例子
  • 使用Babel
  • 安装指南

升级你的节点版本到7.6之后,没有必要使用babel进行编译,这在生产中是非常可以避免的。节点> 7.6版本支持asynchronous/等待,这是非常强大的。