2015-10-19 21 views

उत्तर

5

यह एक node.js सवाल विशेष रूप से सेल नहीं है। हां node.js का वर्तमान संस्करण आपके Node.js संस्करण और आपके सर्वर को प्रारंभ करते समय उपयोग किए जाने वाले झंडे के आधार पर कुछ ES2015 मानकों का समर्थन करता है।

अधिकांश सुविधाओं को पहले से ही हालांकि सभी सुविधाओं का उपयोग करने के लिए सक्रिय हैं,, आप sails lift

नीचे दिए गए लिंक क्या नोड समर्थन और के वर्तमान संस्करण कैसे सुविधाओं पर अद्यतन जानकारी प्रदान करता है के बजाय अपनी परियोजना फ़ोल्डर में node app.js --es_staging या node app.js --harmony का प्रयोग करेंगे उन्हें एक्सेस करें।

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

8

आप सर्वर साइड कोड के लिए जावास्क्रिप्ट बदल जाएगा क्योंकि पिछले Node.js पर बजाय sails.js की तरह किसी भी ढांचे Node.js साथ ES6 की अनुकूलता की जांच करने, एक्सप्रेस आदि

की जरूरत है। तो इससे कोई फर्क नहीं पड़ता कि आप किस ढांचे का उपयोग कर रहे हैं।

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/ से नई सुविधा मिल जाएगी।

टेस्ट:

कोड:

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 टीम द्वारा स्थिर नहीं माना जाता है। लेकिन आप उन्हें सद्भावना ध्वज द्वारा उपयोगकर्ता कर सकते हैं। लेकिन मुझे लगता है कि जब तक वे स्थिर नहीं हैं तब तक आपको इंतजार करना होगा। –

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 के रूप में, ब्लॉक-दायरे वाले घोषणाओं जानबूझकर एक गैर-संगत लिम के साथ लागू किया जाता है सख्त मोड कोड के लिए इटेशन। डेवलपर्स को पता होना चाहिए कि यह बदल जाएगा क्योंकि वी 8 ईएस 6 विनिर्देश अनुपालन की ओर जारी है।
  • वर्ग (सख्त मोड केवल)
  • संग्रह
  • मानचित्र
  • WeakMap
  • सेट
  • WeakSet
  • टाइप सरणियों
  • जेनरेटर
  • बाइनरी और ऑक्टल शाब्दिक
  • वस्तु शाब्दिक एक्सटेंशन (आशुलिपि गुण और विधियों)
  • वादे
  • नई स्ट्रिंग तरीकों
  • चिह्न
  • खाका तार
  • तीर कार्य
+0

स्वरूपण के लिए खेद है। ऐप –

15

SailsJS सिर्फ एक रूपरेखा ES5 वाक्य रचना के माध्यम से लिखा है और इसे ES6 का समर्थन करने की आवश्यकता नहीं है।

आप आमतौर पर ईएस 6 सिंटैक्स के साथ प्रोजेक्ट लिख सकते हैं जैसा कि आप आमतौर पर करते हैं और चलने के लिए बैबेल \ ट्रेसेर \ का उपयोग करते हैं।

मेरे प्रवाह पीछा कर रहा है:

  • पाल प्रोजेक्ट बना;
  • babeldevDependencies के रूप में स्थापित करें;
  • npm startpackage.json में "start": "babel-node app.js" के साथ अद्यतन करें;

यही है। मैं अपने नियंत्रकों \ मॉडल \ आदि में ES6 \ 7 कोड लिख सकता हूं और npm start कमांड के माध्यम से सर्वर चला सकता हूं। यह सामान्य रूप से काम करता है जैसा आपने इसे ES5 वाक्यविन्यास के साथ लिखा था।

Babel Transpiler

Babel Node

+0

दुर्भाग्य से इतना आसान नहीं है। त्रुटि फेंक दी गई: /node_modules/source-map-support/source-map-support.js:415 var hasStack = (तर्क [1] && तर्क [1]। स्टैक); ^ टाइपरर: अपरिभाषित की संपत्ति 'फ़ाइल नाम' नहीं पढ़ सकता – alexmngn

1

वहाँ sails-hook-babel हुक है कि आप के लिए बाहर काम कर सकते हैं है। यह मेरे लिए काम नहीं करता है, जैसा कि मैंने नीचे बताया है, लेकिन मुझे आशा है कि यह उच्च दृश्यता प्राप्त करे, सुधार हुआ है, और फिर यह उत्तर अधिक प्रासंगिक होगा।

वर्तमान में, v6.0.1 के रूप में लाइब्रेरी पाल हुक चलाने के बाद लोड की गई फ़ाइलों के लिए काम करेगी। इसका मतलब है कि यदि आप ES2015 का उपयोग करना चाहते हैं उदा। आपकी config/routes.js फ़ाइल, आपको एक वाक्यविन्यास त्रुटि मिलेगी। लेकिन जैसा कि this issue में सुझाया गया है, इसे उदाहरण के लिए काम करना चाहिए api फ़ोल्डर में फ़ाइलें।

संबंधित मुद्दे