2

问题

我正在尝试使用运行简单的 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

问题

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

类似问题

4

2 回答 2

5

解决方案

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

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

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

第 2 步- 创建index.jsbabel-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服务器后,像馅饼一样工作importasync,await正在正确处理。

参考

于 2016-06-02T20:32:37.663 回答
2

将你的节点版本升级到至少 7.6 之后,无需使用 babel 转译你的代码,这在生产中是非常可以避免的。节点 > 7.6 版本支持非常强大的异步/等待。

于 2017-09-08T14:27:18.977 回答