2012-07-10 19 views
9

के साथ JSHint का उपयोग करके मैं RESTful API बनाने के लिए Node.js के Express.js ontop का उपयोग कर रहा हूं, और मेरी फ़ाइलों को देखने और स्वचालित रूप से मेरी जावास्क्रिप्ट को लिंट करने के लिए गंट का उपयोग कर रहा हूं।Express.js/'delete' (एक आरक्षित शब्द)

जब भी मैं नष्ट फ़ंक्शन का उपयोग करें, यह JSHint द्वारा चिह्नित किया जाता है:

[L218:C9] Expected an identifier and instead saw 'delete' (a reserved word). 
app.delete('/api/users/:userid', function deleteUser(req, res, next) { 

मैं समझता हूँ कि 'हटाएँ' एक आरक्षित शब्द है, लेकिन यह Express.js द्वारा चुना है! क्या मेरे Express.js ऐप को लिफ्ट करने के बारे में जाने का कोई बेहतर तरीका है? इस चेक को बंद करने का कोई तरीका ??

+0

त्वरित खोज करना मुझे विश्वास है कि आप इसके लिए 'es5' विकल्प का उपयोग कर सकते हैं। – Alfred

उत्तर

28

Express.js में, delete के बजाय del का उपयोग करें।

app.del('/api/users/:userid', function deleteUser(req, res, next) 
+0

बहुत बढ़िया! धन्यवाद! :- डी –

+5

आश्चर्यजनक रूप से, यह एपीआई दस्तावेज में नहीं है ... – prauchfuss

+1

अब डेल का उपयोग न करें! एक्सप्रेस बहिष्कृत app.del: इसके बजाय app.delete का उपयोग करें –

3

JSHint 1.1.x में आप JSHint के लिए es5 विकल्प सेट कर सकते हैं, और यह आप प्रति ES5 विनिर्देश गुण के रूप में आरक्षित शब्द का उपयोग करने की अनुमति देगा।

JSHint 2.0 es5 विकल्प डिफ़ॉल्ट है और आपको आरक्षित शब्दों को गुणों के रूप में उपयोग करने की अनुमति दी जानी चाहिए।

अधिक जानकारी के लिए आप इस को हल करने के लिए एक अन्य तरीका http://www.jshint.com/docs/#options

+2

यह बदल गया है; [संस्करण 2.0.0 के रूप में] (http://www.jshint.com/blog/2013-05-07/2-0-0/), जेएसहिंट ने 'es5' विकल्प से छुटकारा पा लिया और अब मान लिया है कि कोड ES5 है जब तक कि अन्य 'es3' और' esnext' विकल्पों के माध्यम से अन्यथा नहीं बताया जाता है। –

6

को सामने कर सकते हैं bracket notation बजाय dot notation उपयोग करने के लिए हो गया होता।

app['delete']('/api/users/:userid', function deleteUser(req, res, next) { 
    /* function body */ 
}); 

काम इस तरह की चारों ओर अतीत में जरूरी हो गया था जब IndexedDB जो दोनों .delete और .continue तरीकों को परिभाषित करता है के साथ काम कर।

इन दिनों इस तरह के कामकाज आवश्यक नहीं होना चाहिए। Ever since ES5 जावास्क्रिप्ट ने संपत्ति नामों को आरक्षित शब्दों का उपयोग करने की अनुमति दी है। लंबे समय तक jsHint को आपका कोड मानने के लिए डिफ़ॉल्ट रूप से ES3 था, लेकिन starting with version 2.0.0 यह मानने के लिए डिफ़ॉल्ट है कि यह ES5 है और संपत्ति नामों के रूप में उपयोग किए जाने वाले आरक्षित शब्दों के बारे में शिकायत नहीं करेगा।

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