SailsJS支持ES6吗?
有没有办法在sails.js中获得ES6 ?
这是一个node.js问题,没有具体的风帆。 是的当前版本的node.js支持某些ES2015标准,具体取决于您启动服务器时使用的Node.js版本和标志。
大多数function已经激活,但是要使用所有function,您可以在项目文件夹中使用node app.js --es_staging
或node app.js --harmony
node app.js --es_staging
而不是sails lift
以下链接提供有关当前版本的Node支持以及如何访问它们的function的更新信息。
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
文件夹中的文件。
- 如何在使用mocha / chai进行unit testing时覆盖护照authentication?
- 运行navalia示例的打字稿错误
- 什么是JavaScript中的“导出默认”?
- JavaScript:函数执行的顺序
- 使用'let'作为variables名不会在google v8中引发任何错误
- 在JavaScript中,特别是NodeJS上的ES6,我可以直接在运行时操作类的getter和setter函数吗?
- React / Node / Express / Webpack – 必须返回一个有效的React元素(或null)
- 在WebStorm中debugging编译ES6 nodejs应用程序
- 有没有办法在ES6 / Node 4中创build接口?