Dies ist eine knoten.js Frage, die nicht speziell segelt. Ja, die aktuelle Version von node.js unterstützt bestimmte ES2015-Standards, abhängig von Ihrer Node.js-Version und den Flags, die Sie beim Starten des Servers verwenden.
Die meisten Funktionen sind bereits aktiv. Um jedoch alle Funktionen zu nutzen, verwenden Sie node app.js --es_staging
oder node app.js --harmony
in Ihrem Projektordner anstelle von sails lift
.
Der folgende Link enthält aktualisierte Informationen zu den Funktionen der aktuellen Version der Knotenunterstützung und zum Zugriff darauf.
SailsJS ist nur ein Framework, das über die ES5-Syntax geschrieben wurde und ES6 nicht unterstützen muss.
Sie können Projekte wie gewohnt mit ES6-Syntax schreiben und Babel\Traceur\whatever zum Ausführen verwenden.
Mein Flow folgt:
babel
als devDependencies
;npm start
-Skript in package.json
mit "start": "babel-node app.js"
aktualisieren;Das ist es. Ich kann ES6\7-Code in meine Controller\models\etc schreiben und den Server über den Befehl npm start
ausführen. Es funktioniert so, wie Sie es mit ES5-Syntax geschrieben haben.
Sie müssen die Kompatibilität von ES6 mit node.js überprüfen, stattdessen alle Frameworks wie sails.js, express usw.
Denn zuletzt ändert node.js das JavaScript in serverseitigen Code. Es spielt also keine Rolle, welches Framework Sie verwenden.
Sie können die Segel mit ES6 benutzen:
Überprüfen Sie die ES6-Kompatibilität unter kangax.github.io .
Empfohlen :
Segel v 0.11.0 oder höher
Knoten v 4.. oder größer
npm v 2.14.4 oder höher
Jetzt können Sie die neue Funktion Ecmascript6 erkunden.
Sie erhalten die neue Funktion von http://es6-features.org/ .
PRÜFUNG :
Code:
ecma6Test:function(req,res,next){
var evens =req.body.evens
odds = evens.map(v => v + 1);
res.json({sucess:true,'odds':odds});
}
Anfordern:
{"evens":[2,4,6,8,10]}
Antwort :
{
"sucess": true,
"odds":[3, 5, 7, 9, 11]
}
Vishnus Antwort hat Sie abgedeckt.
Die explizite Liste der in der neuesten Node-Version verfügbaren ES6-Funktionen finden Sie hier https://nodejs.org/en/docs/es6/
Welche ES6-Funktionen werden standardmäßig mit Node.js geliefert (kein Laufzeitflag erforderlich)?
Es gibt den sails-hook-babel hook, der für Sie funktionieren könnte. Es funktioniert nicht für mich, wie ich unten erkläre, aber ich hoffe, es wird besser sichtbar, und dann wird diese Antwort relevanter.
Gegenwärtig funktioniert die Bibliothek ab Version 6.0.1 für Dateien, die nach dem Ausführen der sails-Hooks geladen wurden. Dies bedeutet, dass, wenn Sie ES2015 in z. In Ihrer config/routes.js
-Datei wird ein Syntaxfehler angezeigt. Aber wie in dieser Ausgabe vorgeschlagen, sollte es für z. Dateien im Ordner api
.