2012-07-10 14 views
9

RESTful API oluşturmak için Node.js uygulamasının Express.js ontop'unu kullanıyorum ve dosyalarımı izlemek ve JavaScript'imi otomatik olarak tweet atmak için grunt kullanarak kullanıyorum.Express.js/'delete' ile JSHint'i kullanma (ayrılmış bir sözcük)

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

Ben 'sil' ayrılmış bir kelime olduğunu anlıyoruz, ancak Express.js tarafından seçti:

Ben silme işlevini kullanın her zaman, o JSHint tarafından işaretlendiğinde! Express.js uygulamamı incelemek için daha iyi bir yol var mı? Bu kontrolü kapatmak için herhangi bir yol ??

+0

Hızlı arama Yapmak için 'es5' seçeneğini kullanabileceğinizi düşünüyorum. – Alfred

cevap

28

Express.js'de, delete yerine del kullanın.

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

Harika! Teşekkürler! : -D –

+5

Garip bir şekilde, bu API belgelerinde yok ... – prauchfuss

+1

Artık deliği KULLANMAYIN! express kullanımdan kaldırılmış app.del: Use app.delete yerine –

3

JSHint 1.1.x size jshint için es5 seçeneğini ayarlayabilir ve bunu ES5 şartname başına özellikleri olarak ayrılmış kelime kullanma izni verecek.

JSHint 2.0 es5'dan itibaren varsayılan değerdir ve ayrılmış sözcükleri özellik olarak kullanmanıza izin verilmelidir.

fazla bilgi için, http://www.jshint.com/docs/#options

+2

Bu değişti; [2.0.0 sürümünden itibaren] (http://www.jshint.com/blog/2013-05-07/2-0-0/), JSHint 'es5' seçeneğinden kurtuldu ve şimdi kodun ES5 olduğunu varsayar aksi takdirde yeni 'es3' ve 'esnext' seçenekleri ile anlatılmamışsa. –

6

bu çözmek için başka yol üzerinde kafa bracket notation yerine dot notation kullanmak olurdu. Her iki .delete ve .continue yöntemlerini tanımlar IndexedDB ile çalışırken

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

Bu tip bir çalışma

etrafında geçmişte gerekliydi.

Bu günlerde bu tür bir geçici çözüm gerekli olmamalıdır. Ever since ES5 JavaScript, mülk adlarının ayrılmış sözcükleri kullanmasına izin verdi. Kodunuzun ES3 olduğunu varsaymak için jsHint uzun bir süre varsayılan olarak ayarlanmış, ancak starting with version 2.0.0 varsayılan olarak ES5 olduğunu varsaymakta ve özellik adları olarak kullanılan ayrılmış sözcüklerden şikayet etmeyecektir.