2015-10-19 111 views

回答

5

這是一個node.js問題,沒有明確的風帆。是當前版本的node.js支持某些ES2015標準,具體取決於您啓動服務器時使用的Node.js版本和標誌。

大部分功能已經激活,但使用所有的功能,你會在你的項目文件夾使用node app.js --es_stagingnode app.js --harmony代替sails lift

以下鏈接提供什麼功能目前版本的節點支持,以及如何更新的信息訪問它們。

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

8

您需要檢查ES6的兼容性與node.js的,而不是任何框架一樣sails.js,快遞等

因爲在最後的node.js將JavaScript的改變服務器端代碼。 因此,您使用的是哪種框架並不重要。

You can use the sails with ES6:

對於ES6兼容性檢查kangax.github.io

推薦:

Sails v 0.11.0 or greater

Node v 4.. or greater

npm v 2.14.4 or greater

現在,您可以探索新的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] 
} 
+0

V8團隊認爲舞臺功能並不穩定。但你可以通過--harmony標誌來使用它們。但我認爲你必須等到他們穩定。 –

2

毗溼奴的答案有你覆蓋。

ES6的顯式列表功能在最新的節點版本可在這裏https://nodejs.org/en/docs/es6/

Which ES6 features ship with Node.js by default (no runtime flag required)?

  • 設(嚴格模式)
  • 常量
  • 功能的塊(嚴格模式只)
    • 自v8 3.31.74.1開始,塊範圍聲明有意使用非兼容限制嚴格的模式代碼。開發人員應該意識到,隨着v8繼續向ES6規範合規性發展,這將會發生變化。
  • 類(嚴格模式)
  • 集合
  • 地圖
  • WeakMap
  • 設置
  • WeakSet
  • 類型數組
  • 發電機
  • 二進制和八進制文字
  • 對象字面擴展(簡寫屬性和方法)
  • 承諾
  • 新的String方法
  • 符號
  • 模板串
  • 箭頭功能
+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語法編寫它時,它就像往常一樣工作。

Babel Transpiler

Babel Node

+0

不那麼容易。引發錯誤: /node_modules/source-map-support/source-map-support.js:415 var hasStack =(arguments [1] && arguments [1] .stack); ^ TypeError:無法讀取未定義的屬性'文件名' – alexmngn

1

還有就是sails-hook-babel鉤子,可以先制定出適合您。它不適用於我,正如我在下面解釋的那樣,但我希望它獲得更高的可見度,得到改進,然後這個答案將更具相關性。

目前,從v6.0.1開始,該庫將在sails掛接運行後加載文件。這意味着如果您想在例如ES2015中使用ES2015你的config/routes.js文件,你會得到一個語法錯誤。但正如this issue所建議,它應該適用於例如api文件夾中的文件。