【发布时间】:2016-01-18 00:46:53
【问题描述】:
【问题讨论】:
标签: javascript node.js sails.js ecmascript-6
【问题讨论】:
标签: javascript node.js sails.js ecmascript-6
这是一个 node.js 问题,并不是特别适合。是的,当前版本的 node.js 支持某些 ES2015 标准,具体取决于您在启动服务器时使用的 Node.js 版本和标志。
大部分功能已经启用,但是要使用所有功能,您可以在项目文件夹中使用node app.js --es_staging 或node app.js --harmony 而不是sails lift
以下链接提供了有关当前 Node 版本支持哪些功能以及如何访问这些功能的更新信息。
【讨论】:
您需要检查 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/ 获得新功能。
测试:
代码:
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/
默认情况下 Node.js 附带了哪些 ES6 功能(不需要运行时标志)?
【讨论】:
SailsJS 只是一个使用 ES5 语法编写的框架,不需要支持 ES6。
您可以像往常一样使用 ES6 语法编写项目,并使用 Babel\Traceur\whatever 来运行。
我的流程如下:
babel为devDependencies;"start": "babel-node app.js" 更新package.json 中的npm start 脚本;就是这样。我可以在我的 controllers\models\etc 中编写 ES6\7 代码并通过npm start 命令运行服务器。它像你用 ES5 语法编写的一样正常工作。
【讨论】:
sails-hook-babel 钩子可能对你有用。正如我在下面解释的那样,它对我不起作用,但我希望它得到更高的可见性,得到改进,然后这个答案将更加相关。
目前,从 v6.0.1 开始,该库将适用于在sails 挂钩运行后加载的文件。这意味着如果你想在例如使用 ES2015你的config/routes.js 文件,你会得到一个语法错误。但正如this issue 中所建议的那样,它应该适用于例如api 文件夹中的文件。
【讨论】: