2015-10-19 18 views

Trả lời

5

Đây là câu hỏi node.js không phải là các cánh buồm cụ thể. Có phiên bản hiện tại của node.js hỗ trợ các tiêu chuẩn ES2015 nhất định tùy thuộc vào phiên bản Node.js và cờ bạn sử dụng khi bạn khởi động máy chủ của mình.

Hầu hết các tính năng này đã được kích hoạt, tuy nhiên để sử dụng tất cả các tính năng, bạn sẽ sử dụng node app.js --es_staging hoặc node app.js --harmony trong thư mục dự án của bạn thay vì sails lift

Các liên kết sau đây cung cấp cập nhật thông tin về những tính năng phiên bản hiện tại hỗ trợ Node và làm thế nào để truy cập chúng.

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

8

Bạn cần phải kiểm tra tính tương thích của ES6 với Node.js thay vì bất kỳ khuôn khổ như sails.js, thể hiện, vv

Bởi vì tại Node.js cuối cùng sẽ thay đổi hoạt Javascript để mã phía máy chủ. Vì vậy, không quan trọng bạn đang sử dụng khung công tác nào.

You can use the sails with ES6:

Để kiểm tra khả năng tương thích ES6 kangax.github.io.

Khuyến cáo:

Sails v 0.11.0 or greater

Node v 4.. or greater

npm v 2.14.4 or greater

Bây giờ bạn đã sẵn sàng để khám phá tính năng mới Ecmascript6.

Bạn sẽ nhận được tính năng mới từ http://es6-features.org/.

TEST:

Code:

ecma6Test:function(req,res,next){ 
    var evens =req.body.evens 
    odds = evens.map(v => v + 1); 
    res.json({sucess:true,'odds':odds}); 
} 

Yêu cầu:

{"evens":[2,4,6,8,10]} 

đáp ứng:

{ 
    "sucess": true, 
    "odds":[3, 5, 7, 9, 11] 
} 
+0

Tính năng dàn dựng không được nhóm V8 đánh giá là ổn định. nhưng bạn có thể sử dụng chúng theo cờ --harmony. Nhưng tôi nghĩ bạn phải đợi cho đến khi chúng ổn định. –

2

câu trả lời Vishnu của bạn có bảo hiểm.

Danh sách rõ ràng của ES6 tính năng có sẵn trong bản phát hành nút mới nhất là đây https://nodejs.org/en/docs/es6/

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

  • let (chế độ nghiêm ngặt chỉ)
  • const
  • chức năng-in-khối (chế độ nghiêm ngặt chỉ)
    • Kể từ phiên bản v8 3.31.74.1, các khai báo dạng khối được triển khai có chủ đích với một giới hạn không tuân thủ itation đến mã chế độ nghiêm ngặt. Các nhà phát triển cần lưu ý rằng điều này sẽ thay đổi khi v8 tiếp tục hướng tới tuân thủ đặc tả ES6.
  • Lớp học (chế độ nghiêm ngặt chỉ)
  • Collections
  • Bản đồ
  • WeakMap
  • Đặt
  • WeakSet
  • mảng Typed
  • phát
  • Binary và Octal literals
  • Object mở rộng chữ (tính viết tắt và phương pháp)
  • Promises
  • phương pháp
  • New Chuỗi
  • Biểu tượng
  • chuỗi Template
  • Chức năng
  • mũi tên
+0

Xin lỗi vì định dạng. Ứng dụng không phải là tốt nhất cho nó –

15

SailsJS chỉ là một khuôn khổ văn bản thông qua cú pháp ES5 và nó không cần hỗ trợ ES6.

Bạn có thể viết dự án với cú pháp ES6 như bạn thường làm và sử dụng Babel \ Traceur \ bất kỳ thứ gì để chạy.

dòng chảy của tôi là như sau:

  • Tạo dự án Sails;
  • Cài đặt babeldevDependencies;
  • Cập nhật npm start tập lệnh trong package.json với "start": "babel-node app.js";

Vậy đó. Tôi có thể viết mã ES6 \ 7 trong bộ điều khiển \ mô hình \ etc và chạy máy chủ thông qua lệnh npm start. Nó hoạt động như bình thường khi bạn viết nó với cú pháp ES5.

Babel Transpiler

Babel Node

+0

Thật không may dễ dàng như vậy. Lỗi được ném: /node_modules/source-map-support/source-map-support.js:415 var hasStack = (đối số [1] && đối số [1] .stack); ^ LoạiError: Không thể đọc thuộc tính 'filename' của undefined – alexmngn

1

Có là sails-hook-babel móc có thể làm việc ra cho bạn. Nó không hiệu quả đối với tôi, như tôi giải thích dưới đây, nhưng tôi hy vọng nó có khả năng hiển thị cao hơn, được cải thiện, và sau đó câu trả lời này sẽ phù hợp hơn.

Hiện tại, v6.0.1 thư viện sẽ hoạt động đối với các tệp được tải sau khi các đuôi sails chạy. Điều này có nghĩa là nếu bạn muốn sử dụng ES2015, ví dụ: tệp config/routes.js của bạn, bạn sẽ nhận được lỗi cú pháp. Nhưng như được đề xuất trong this issue, nó sẽ hoạt động cho ví dụ: tệp trong thư mục api.