webentwicklung-frage-antwort-db.com.de

Unterstützt SailsJS ES6?

Gibt es eine Möglichkeit, ES6 in sails.js zu bekommen?

14
Jaseem Abbas

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.

https://nodejs.org/en/docs/es6/

5
Meeker

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:

  • Sails-Projekt erstellen;
  • Installiere 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.

Babel Transpiler

Babel Node

15
ghaiklor

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]
}
8
Vishnu Mishra

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)?

  • let (nur im strengen Modus)
  • const
  • funktionsbausteine ​​(nur im strengen Modus)
    • Ab v8 3.31.74.1 werden blockbezogene Deklarationen absichtlich mit einer nicht konformen Beschränkung auf strengen Moduscode implementiert. Entwickler sollten sich darüber im Klaren sein, dass sich dies ändern wird, wenn v8 weiterhin der ES6-Spezifikation entspricht.
  • Klassen (nur im strengen Modus)
  • Sammlungen
  • Karte
  • WeakMap
  • Einstellen
  • WeakSet
  • Typisierte Arrays
  • Generatoren
  • Binär- und Oktalliterale
  • Objektliteralerweiterungen (Kurzform-Eigenschaften und Methoden)
  • Versprechen
  • Neue String-Methoden
  • Symbole
  • Vorlagenzeichenfolgen
  • Pfeil-Funktionen
2
Fred Stark

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.

1
Tyler Collier