答案 0 :(得分:15)
SailsJS只是一个通过ES5语法编写的框架,它不需要支持ES6。
您可以像往常一样使用ES6语法编写项目,并使用Babel \ Traceur \以便运行。
我的流程如下:
babel
作为devDependencies
; npm start
; package.json
中的"start": "babel-node app.js"
脚本
那就是它。我可以在我的controllers \ models \ etc中编写ES6 \ 7代码,并通过npm start
命令运行服务器。它像往常一样使用ES5语法编写。
答案 1 :(得分:8)
您需要检查ES6与node.js的兼容性,而不是像sails.js,express等任何框架。
因为最后node.js会将javaScript更改为服务器端代码。 因此,使用哪个框架并不重要。
您可以使用ES6的风帆:
对于ES6兼容性检查kangax.github.io。
推荐:
Sails v 0.11.0或更高
Node v 4. 。或更高
npm v 2.14.4或更高
现在您已准备好探索新的Ecmascript6功能。
您将从http://es6-features.org/获得新功能。
TEST:
代码:
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]
}
答案 2 :(得分:5)
这是一个node.js问题,不是特定的帆。是当前版本的node.js支持某些ES2015标准,具体取决于您启动服务器时使用的Node.js版本和标志。
大多数功能都已激活,但要使用所有功能,您可以在项目文件夹中使用node app.js --es_staging
或node app.js --harmony
而不是sails lift
以下链接提供有关Node支持的当前版本以及如何访问它们的功能的更新信息。
答案 3 :(得分:2)
Vishnu的回答让你了解。
最新节点版本中提供的ES6功能的明确列表位于https://nodejs.org/en/docs/es6/
默认情况下,哪些ES6功能附带Node.js(不需要运行时标志)?
答案 4 :(得分:1)
有sails-hook-babel挂钩可能对你有用。它对我不起作用,正如我在下面解释的那样,但我希望它获得更高的可见度,得到改善,然后这个答案将更具相关性。
目前,从v6.0.1开始,该库将适用于在sails挂钩运行后加载的文件。这意味着如果您想在例如ES2015中使用ES2015您的config/routes.js
文件,您将收到语法错误。但正如this issue中所建议的,它应该适用于api
文件夹中的文件。