Javascript 节点js v5.9.1和类';进出口';陈述

Javascript 节点js v5.9.1和类';进出口';陈述,javascript,node.js,syntax,ecmascript-6,ecmascript-5,Javascript,Node.js,Syntax,Ecmascript 6,Ecmascript 5,我已经在windows上安装了官方节点js版本v5.9.1(x64),并尝试使用ECMAScript处理类。我编写了一个简单的类来测试: "use strict"; export class httpWrapper { getPage(options){ // some code } }; 我把这个类放在httpWrapper.js中。正如您所看到的,我在这里使用export来导出类。然后我用以下代码创建了“main.js”: 'use strict'

我已经在windows上安装了官方节点js版本v5.9.1(x64),并尝试使用ECMAScript处理类。我编写了一个简单的类来测试:

"use strict";

export class httpWrapper {

    getPage(options){

      // some code

    }



};
我把这个类放在
httpWrapper.js
中。正如您所看到的,我在这里使用export来导出类。然后我用以下代码创建了“main.js”:

'use strict';


import httpWrapper from 'httpWrapper';  
let theInstance = new httpWrapper();
当我运行
node main.js
时,我得到一个错误:

import httpWrapper from 'httpWrapper';
^^^^^^

SyntaxError: Unexpected token import
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:387:25)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Function.Module.runMain (module.js:447:10)
    at startup (node.js:142:18)
    at node.js:939:3
我还尝试使用node运行
httpWrapper.js
,结果:

export class httpWrapper {
^^^^^^

    SyntaxError: Unexpected token export
        at exports.runInThisContext (vm.js:53:16)
        at Module._compile (module.js:387:25)
        at Object.Module._extensions..js (module.js:422:10)
        at Module.load (module.js:357:32)
        at Function.Module._load (module.js:314:12)
        at Function.Module.runMain (module.js:447:10)
        at startup (node.js:142:18)
        at node.js:939:3

导入/导出功能在node js中可用吗?由于这些语句不起作用,我无法使用导出/导入,您认为如何导出/导入类?

现在浏览器不了解ES6(ECMAScript2015),您需要使用像babel这样的transpiler将ES6转换为ES5

您需要安装
npm install babel cli-g
,然后运行
babel node main.js
,或者如果需要使用node运行,则需要使用require hook babel register创建js。 例如:

// runner.js 
// I implement async in my modules, for this reason i need the preset stage-3 & es2015-node to support es6 features
require("babel-register")({
  presets: ['es2015-node', 'stage-3']
});

// Import you main module with require and run
// On this example I export http.createServer on server.js -> export default server

var server = require('./server.js')

server.listen(3000, function () {
    console.log('Server running')
})

// Server.js 
import express from 'express'
import { Server } from 'http'
import bodyParser from 'body-parser'
import morgan from 'morgan'

var app = express()

// configuracion
app.use(morgan('combined'))
app.use(bodyParser.urlencoded({extended: true}))
app.use(bodyParser.json())
app.set('view engine', 'jade')

// Route para nuestra API
var router = express.Router()

router.get('/', function (req, res) {
  res.json({ message: 'hooray! welcome to our api!' })
})

app.use('/api', router)

var server = Server(app) // require('http').createServer(app.callback())
// app.listen(3000)

console.log('Magic happens on port 3000')
export default server

现在只运行
node runner.js
有时需要添加标志——harmony

不,现在还没有讨论。如果您需要在浏览器上使用ES6,我推荐Babel Transpiler:Webpack+Babel loader或Gulp+Gulp Babel。