it-roy-ru.com

SailsJS поддерживает ES6?

Есть ли способ получить ES6 in sails.js ?

14
Jaseem Abbas

Это вопрос node.js, а не вопрос парусов. Да, текущая версия node.js поддерживает определенные стандарты ES2015 в зависимости от версии Node.js и флагов, которые вы используете при запуске сервера. 

Большинство функций уже активны, однако, чтобы использовать все функции, вы бы использовали node app.js --es_staging или node app.js --harmony в папке вашего проекта вместо sails lift

Следующая ссылка предоставляет обновленную информацию о том, какие функции поддерживает текущая версия Node и как получить к ним доступ.

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

5
Meeker

SailsJS - это просто фреймворк, написанный с использованием синтаксиса ES5, и он не нуждается в поддержке ES6.

Вы можете написать проект с синтаксисом ES6, как обычно, и использовать Babel\Traceur\для запуска.

Мой поток следующий:

  • Создать проект Sails;
  • Установите babel как devDependencies;
  • Обновите скрипт npm start в package.json с помощью "start": "babel-node app.js";

Вот и все. Я могу написать код ES6\7 в моих контроллерах\models\etc и запустить сервер с помощью команды npm start. Он работает как обычно, как вы написали с синтаксисом ES5.

Babel Transpiler

Вавилонский узел

15
ghaiklor

Вам нужно проверить совместимость ES6 с node.js вместо любых фреймворков, таких как sails.js, express и т.д.

Потому что, наконец, node.js изменит javaScript на код серверной стороны . Поэтому не имеет значения, какую платформу вы используете.

Вы можете использовать паруса с ES6:

Для проверки совместимости ES6 kangax.github.io .

Рекомендуемые :

Паруса v 0.11.0 или выше

Узел v 4 .. или выше 

npm v 2.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]
}
8
Vishnu Mishra

Ответ Вишну покрыл тебя.

Подробный список функций ES6, доступных в последней версии узла, можно найти здесь https://nodejs.org/en/docs/es6/

Какие функции ES6 поставляются с Node.js по умолчанию (флаг выполнения не требуется)?

  • пусть (только в строгом режиме)
  • const
  • функция в блоках (только в строгом режиме)
    • Начиная с v8 3.31.74.1, декларации в области блока преднамеренно реализованы с несоответствующим ограничением кода строгого режима. Разработчики должны знать, что это изменится, поскольку v8 продолжает соответствовать спецификации ES6.
  • Классы (только в строгом режиме)
  • Коллекции
  • Карта
  • WeakMap
  • Задавать
  • WeakSet
  • Типизированные массивы
  • Генераторы
  • Двоичные и восьмеричные литералы
  • Расширения литералов объектов (сокращенные свойства и методы)
  • Обещания
  • Новые строковые методы
  • Символы
  • Шаблонные строки
  • Стрелка Функции
2
Fred Stark

Существует sails-hook-babel hook, который может сработать для вас. Это не работает для меня, как я объясняю ниже, но я надеюсь, что он становится более заметным, улучшается, и тогда этот ответ будет более актуальным.

В настоящее время, начиная с v6.0.1, библиотека будет работать с файлами, загруженными после запуска обработчиков паруса. Это означает, что если вы хотите использовать ES2015, например, ваш файл config/routes.js, вы получите синтаксическую ошибку. Но, как предлагается в этот вопрос , он должен работать, например, для файлы в папке api.

1
Tyler Collier