9

Node.js の上に Express.js を使用して RESTful API を作成し、grunt を使用してファイルを監視し、JavaScript を自動的にリントします。

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 アプリをリントするためのより良い方法はありますか? このチェックをオフにする方法はありますか??

4

3 に答える 3

28

Express.js では、del代わりに を使用しdeleteます。

app.del('/api/users/:userid', function deleteUser(req, res, next)
于 2012-07-10T19:28:10.667 に答える
7

これを解決する別の方法は、ドット表記の代わりにブラケット表記を使用することでした。

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

以前は、とメソッドの両方を定義するIndexedDBを使用する場合、この種の回避策が必要でした。.delete.continue

最近では、この種の回避策は必要ありません。ES5 以降、 JavaScript ではプロパティ名に予約語を使用することが許可されています。長い間、jsHint はデフォルトでコードが ES3 であると想定していましたが、バージョン 2.0.0からはデフォルトで ES5 であると想定し、予約語がプロパティ名として使用されても文句を言いません。

于 2013-06-03T04:52:26.847 に答える
3

JSHint 1.1.x ではes5、jshint のオプションを設定できます。これにより、ES5 仕様に従って予約語をプロパティとして使用できるようになります。

JSHint 2.0 以降es5では、オプションがデフォルトであり、予約語をプロパティとして使用できるようにする必要があります。

詳細については、http://www.jshint.com/docs/#options にアクセスしてください。

于 2013-03-04T06:53:36.960 に答える