繁体   English   中英

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

[英]Using JSHint with Express.js / 'delete' (a reserved word)

我正在使用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) {

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

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

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

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

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

在使用定义.delete.continue方法的IndexedDB时 ,这种工作是必要的。

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

在JSHint 1.1.x中,您可以为jshint设置es5选项,它允许您根据ES5规范使用保留字作为属性。

es5 2.0开始, es5选项是默认选项,您应该允许使用保留字作为属性。

有关详细信息,请访问http://www.jshint.com/docs/#options

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM