これはnode.jsの質問であり、特に出航するものではありません。はい。node.jsの現在のバージョンは、Node.jsのバージョンと、サーバーの起動時に使用するフラグに応じて、特定のES2015標準をサポートしています。
ほとんどの機能はすでにアクティブになっていますが、すべての機能を使用するには、プロジェクトフォルダでnode app.js --es_staging
の代わりにnode app.js --harmony
またはsails lift
を使用します。
次のリンクは、現在のバージョンのNodeサポートの機能と、それらにアクセスする方法に関する最新情報を提供します。
SailsJSは、ES5構文を介して記述された単なるフレームワークであり、ES6をサポートする必要はありません。
通常どおりES6構文でプロジェクトを記述し、実行にはBabel\Traceur\whateverを使用できます。
私のフローは次のとおりです。
babel
をdevDependencies
としてインストールします。npm start
のpackage.json
スクリプトを"start": "babel-node app.js"
で更新します。それでおしまい。コントローラ\モデル\ etcにES6\7コードを記述し、npm start
コマンドを使用してサーバーを実行できます。 ES5構文で記述したのと同じように機能します。
代わりに、sails.js、expressなどのフレームワークでES6とnode.jsの互換性を確認する必要があります。
なぜなら、ついにnode.jsがjavaScriptをサーバーサイドコードに変更するからです。したがって、使用しているフレームワークは関係ありません。
ES6で帆を使用できます。
ES6の互換性チェックについては kangax.github.io 。
推奨:
帆 v0.11.0以上
ノード v 4。。以上
npm v2.14.4以上
これで、新しい Ecmascript6 機能を探索する準備が整いました。
新しい機能は http://es6-features.org/ から入手できます。
テスト:
コード:
ecma6Test:function(req,res,next){
var evens =req.body.evens
odds = evens.map(v => v + 1);
res.json({sucess:true,'odds':odds});
}
リクエスト:
{"evens":[2,4,6,8,10]}
応答:
{
"sucess": true,
"odds":[3, 5, 7, 9, 11]
}
ヴィシュヌの答えはあなたをカバーしました。
最新のノードリリースで利用可能なES6機能の明示的なリストはここにあります https://nodejs.org/en/docs/es6/
デフォルトでNode.jsに付属しているES6機能はどれですか(ランタイムフラグは不要)?
sails-hook-babel フックがあります。以下で説明するように、それは私にはうまくいきませんが、より高い視認性が得られ、改善され、そしてこの答えがより適切になることを願っています。
現在、v6.0.1以降、ライブラリは、sailsフックの実行後にロードされたファイルに対して機能します。これは、たとえばES2015を使用する場合に君の config/routes.js
ファイルの場合、構文エラーが発生します。しかし この問題 で示唆されているように、それは例えばのために働くはずです。 api
フォルダー内のファイル。