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

How to run simple app with koa2?

问题

我正在尝试 运行 使用 的简单 http 服务器,但是 运行 连接它时遇到问题。

它使用 that is expected to work in future 版本,我想知道如何 运行 它与 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

问题

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

类似问题

解决方案

我能够找到解决方法并将描述包括安装 Babel 模块

的解决方案

步骤 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 要求的 index.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 正在正确处理。

参考资料

将您的节点版本升级到至少 7.6 之后,无需使用 babel 转译您的代码,这在 production.Node >7.6 版本支持 async/await 中是可以避免的,这非常强大。