5 ответов
Это вопрос node.js, а не вопрос парусов. Да, текущая версия node.js поддерживает определенные стандарты ES2015 в зависимости от версии Node.js и флагов, которые вы используете при запуске сервера.
Большинство функций уже активны, однако, чтобы использовать все функции, вы должны использовать node app.js --es_staging
или же node app.js --harmony
в папке вашего проекта вместо sails lift
Следующая ссылка предоставляет обновленную информацию о том, какие функции поддерживает текущая версия Node и как получить к ним доступ.
SailsJS - это просто фреймворк, написанный с использованием синтаксиса ES5, и ему не требуется поддержка ES6.
Вы можете написать проект с синтаксисом ES6, как обычно, и использовать Babel\Traceur\ для запуска.
Мой поток следующий:
- Создать проект Sails;
- устанавливать
babel
какdevDependencies
; - Обновить
npm start
сценарий вpackage.json
с"start": "babel-node app.js"
;
Вот и все. Я могу написать код ES6\7 в моих контроллерах \ моделях \ и т.д. и запустить сервер через npm start
команда. Он работает как обычно, как вы написали с синтаксисом ES5.
Вам нужно проверить совместимость ES6 с node.js вместо любых фреймворков, таких как sails.js, express и т. Д.
Потому что наконец node.js изменит javaScript на код серверной части. Так что не имеет значения, какую платформу вы используете.
Вы можете использовать паруса с ES6:
Для совместимости с ES6 проверьте kangax.github.io.
Рекомендуемые:
Sails 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]
}
Ответ Вишну покрыл тебя.
Подробный список функций ES6, доступных в последней версии узла, можно найти здесь https://nodejs.org/en/docs/es6/
Какие функции ES6 поставляются с Node.js по умолчанию (флаг выполнения не требуется)?
- пусть (только в строгом режиме)
- Const
- функция в блоках (только в строгом режиме)
- Начиная с версии 8 3.31.74.1, декларации с областью действия намеренно реализованы с несоответствующим ограничением кода строгого режима. Разработчики должны знать, что это изменится, поскольку v8 продолжает соответствовать спецификации ES6.
- Классы (только в строгом режиме)
- Коллекции
- карта
- WeakMap
- Задавать
- WeakSet
- Типизированные массивы
- Генераторы
- Двоичные и восьмеричные литералы
- Расширения литералов объектов (сокращенные свойства и методы)
- обещания
- Новые строковые методы
- Символы
- Шаблонные строки
- Стрелка Функции
Есть крючок для паруса, который может сработать для вас. Это не работает для меня, как я объясняю ниже, но я надеюсь, что он становится более заметным, улучшается, и тогда этот ответ будет более актуальным.
В настоящее время, начиная с v6.0.1, библиотека будет работать с файлами, загруженными после запуска парусов. Это означает, что если вы хотите использовать ES2015, например, в вашем config/routes.js
файл, вы получите синтаксическую ошибку. Но, как предлагается в этом выпуске, он должен работать, например, с файлами в api
папка.