繁体   English   中英

处理CouchDB Map / Reduce JavaScript函数上的Eclipse错误的最佳方法是什么?

[英]What's the best way to handle Eclipse errors on CouchDB Map/Reduce JavaScript functions?

在Java项目中的何处编写和存储mongoDB映射/归约函数中所述-Eclipse不喜欢JavaScript( .js )文件仅包含以下内容:

 function(doc) {
   if(doc.somekey) emit(doc._id, doc);
 }

关键字function标记有错误:

令牌“功能”的语法错误,此令牌后应有标识符

这种形式在MapReduce中使用,但可能不是完全有效的JavaScript(我不是律师)。 有什么办法允许这种形式?

编辑它看起来像是函数表达式而不是function 语句 MDNECMA-262

  • 非解决方案:根据https://stackoverflow.com/a/11258388/185799的 “仅添加一个函数名”,看来节省这些函数的大小似乎并不重要。 但是,添加函数名称会导致: {"error":"compilation_error","reason":"Compilation of the map function in the 'myView' view failed: Expression does not eval to a function."}

  • 可能的解决方案? 在顶部添加一个函数名称或“ module.exports =”,然后在构建阶段使用grunt / gulp / yeoman或其他相关名称将其删除。

  • 现在,什么我实际上做是用文字形式function anonymous(... ,然后做一个字符串只是打电话之前更换synchronizeWithDb()来替代function anonymous(function(这不回答我的问题,但工程周围。

您有三个错误的选择:

  1. 您可以忽略该错误,因为CouchDB可以处理此文件(稍后将对其进行包装以使其生效)。
  2. 您可以更改文件扩展名,但是会丢失语法高亮显示,代码完成和错误检查。
  3. 您可以在错误视图中删除该错误。 它会一直保持删除状态,直到您下次更改文件或进行完整构建。
  4. 您可以配置Eclipse以停止验证文件。

有两种方法可以实现#4:

  • 您可以忽略资源。 这使得该文件对Eclipse和所有插件不可见。 这意味着您无法再在Eclipse中对其进行编辑。 为此使用资源过滤器
  • 您可以检查每个项目的首选项,以获取JavaScript验证规则。 也许您可以排除该文件。

暂无
暂无

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

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