SailsJS支持ES6吗?

有没有办法在sails.js中获得ES6 ?

这是一个node.js问题,没有具体的风帆。 是的当前版本的node.js支持某些ES2015标准,具体取决于您启动服务器时使用的Node.js版本和标志。

大多数function已经激活,但是要使用所有function,您可以在项目文件夹中使用node app.js --es_stagingnode app.js --harmony node app.js --es_staging而不是sails lift

以下链接提供有关当前版本的Node支持以及如何访问它们的function的更新信息。

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

SailsJS只是一个通过ES5语法编写的框架,并不需要支持ES6。

您可以像往常一样使用ES6语法来编写项目,并使用Babel \ Traceur \来运行。

我的stream程如下:

  • 创build风帆项目;
  • 安装babel作为devDependencies ;
  • "start": "babel-node app.js"更新package.json npm start脚本"start": "babel-node app.js" ;

而已。 我可以在我的controllers \ models \ etc中编写ES6 \ 7代码,并通过npm start命令运行服务器。 它像往常一样正常使用ES5语法编写。

Babel Transpiler

巴别节点

您需要检查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或更高

现在您已准备好探索新的Ecmascript6function。

您将从http://es6-features.org/获得新function。

testing:

码:

 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] } 

毗湿奴的答案已经涵盖了。

最新节点版本中提供的ES6function的明确列表在https://nodejs.org/en/docs/es6/

哪些ES6function在默认情况下附带Node.js(不需要运行时标志)?

  • 让(仅限于严格模式)
  • 常量
  • function块(仅限严格模式)
    • 从v3 3.31.74.1开始,块范围声明是有意实现的,对严格模式代码有一个不合规的限制。 开发人员应该意识到,随着V8继续朝着ES6规范的要求,这将会发生变化。
  • 类(仅限严格模式)
  • 集合
  • 地图
  • WeakMap
  • WeakSet
  • 键入数组
  • 发电机
  • 二进制和八进制文字
  • 对象字面扩展(简写属性和方法)
  • 承诺
  • 新的string方法
  • 符号
  • 模板string
  • 箭头function

有一个可以解决你的风帆 – 钩 – babel钩。 它不适用于我,正如我下面解释的,但我希望它得到更高的知名度,改善,然后这个答案会更相关。

目前,从v6.0.1开始,该库将在sails挂接运行后加载文件。 这意味着如果你想在你的config/routes.js文件中使用ES2015,你会得到一个语法错误。 但正如在这个问题中所build议的,它应该适用于例如api文件夹中的文件。