将JSHint与Express.js /'delete'一起使用(保留字)

Eri*_*Red 9 javascript node.js express jshint gruntjs

我正在使用Node.js上的Express.js来创建RESTful API,并使用grunt来查看我的文件并自动lint我的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) {
Run Code Online (Sandbox Code Playgroud)

我知道'删除'是一个保留字,但它是由Express.js选择的!有没有更好的方法去linting我的Express.js应用程序?有办法关闭这个检查??

Bil*_*ill 28

在Express.js中,使用del而不是delete.

app.del('/api/users/:userid', function deleteUser(req, res, next)
Run Code Online (Sandbox Code Playgroud)


Use*_*ode 7

解决这个问题的另一种方法是使用括号表示法而不是点符号.

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

在使用定义了这两者和方法的IndexedDB时,这种解决方法在过去是必要的..delete.continue

现在,这种解决方法不是必需的.自从ES5 JavaScript允许属性名称使用保留字以来.很长一段时间jsHint默认假设您的代码是ES3,但从版本2.0.0开始,它默认假设它是ES5并且不会抱怨保留字被用作属性名称.