Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I try to create a class on my node.js / express app.

It works in basic js / prototype mode such as :

function MyClass() { 
    /* constructor code */
};

MyClass.prototype.myMethod = function() {
    /* method code */
};

module.exports = MyClass;

But I want to do use the class, constructor, extends, ... keywords.

I've try that :

class MyClass {
    constructor() {
        /* constructor code */
    }

    myMethod() {
        /* method code */
    }

}

But it doesn't work, the error is :

class MyClass {
^^^^^
SyntaxError: Unexpected reserved word

My command line to launch the app with all harmony options :

node `node --v8-options | grep harmony | cut -d ' ' -f | xargs` my-app.js 

An idea to launch my app correctly please ?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
640 views
Welcome To Ask or Share your Answers For Others

1 Answer

You can do this with io.js

iojs --use_strict --harmony_classes my-app.js

Or on node.js with traceur

var traceur = require('traceur');
traceur.require.makeDefault(function(file) {
  return file.indexOf('node_modules') == -1;
});

require('./my-app').run();

Make sure to test the new features before using them, some are not supported. Edit: You can check the compatibility list from here


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...