第 6 行 (CoffeeScript) 中未关闭的 INDENT 编译器错误

Posted

技术标签:

【中文标题】第 6 行 (CoffeeScript) 中未关闭的 INDENT 编译器错误【英文标题】:Unclosed INDENT in line 6 ( CoffeeScript ) Compiler Error 【发布时间】:2011-07-04 16:13:42 【问题描述】:

这是我在 CoffeeScript 中使用 MongoDB 进行简单测试的代码。 当我跑步时coffee -c UserDataProvider.coffee 我最终在第 6 行出现错误未关闭缩进

这是我的代码:

Db   = require('mongodb/db').Db
ObjectID = require('mongodb/bson/bson').ObjectID
Server   = require('mongodb/connection').Server

class UserDataProvider
    constructor = (host,port)->
        this.db = new Db( 'test' , new Server(host ,port,))

    getCollection = (callback) ->
        this.db.collection('data',(error,data)->
            if error then callback(error)
            else callback(data)

StackTrace 是:

Error: In UserDataProvider.coffee, unclosed INDENT on line 6
    at Error (unknown source)
    at Rewriter.ensureBalance (/usr/local/lib/node/.npm/coffee-script/1.0.1/package/lib/rewriter.js:283:17)
    at Rewriter.rewrite (/usr/local/lib/node/.npm/coffee-script/1.0.1/package/lib/rewriter.js:21:12)
    at Lexer.tokenize (/usr/local/lib/node/.npm/coffee-script/1.0.1/package/lib/lexer.js:37:29)
    at Object.compile (/usr/local/lib/node/.npm/coffee-script/1.0.1/package/lib/coffee-script.js:26:34)
    at /usr/local/lib/node/.npm/coffee-script/1.0.1/package/lib/command.js:117:33
    at /usr/local/lib/node/.npm/coffee-script/1.0.1/package/lib/command.js:85:26
    at [object Object].<anonymous> (fs.js:86:5)
    at [object Object].emit (events.js:39:17)
    at afterRead (fs.js:843:12)

谁能帮忙?

【问题讨论】:

你应该更新你的代码说constructor:getCollection:而不是使用=,根据你在***.com/questions/5124383/another-coffeescript-error的其他问题只是这样其他人来这个页面不会困惑了。 :) 【参考方案1】:

这一行的第一个左括号从不关闭:

this.db.collection('data',(error,data) ->

实际上根本不需要它,因此如果您打算将“数据”作为第一个参数传递,function(error, data) ... 作为第二个参数传递,您可能希望将其全部删除。

【讨论】:

太棒了,没注意到。但现在我最终得到一个带有意外'。'的 db.collection 的解析错误。有什么想法吗? 对于这个完全相同的代码?当我从上面删除 ( 时,它对我来说编译得很好。只是为了确保,我已经将我的答案改为:this.db.collection 'data',(error,data) -&gt; 对不起,我不知道发生了什么,但是当我保存并重新打开文件时它可以工作。感谢您的帮助。【参考方案2】:

仅供参考,无用的错误消息是当前版本中的错误。

https://github.com/jashkenas/coffee-script/issues/1120

【讨论】:

以上是关于第 6 行 (CoffeeScript) 中未关闭的 INDENT 编译器错误的主要内容,如果未能解决你的问题,请参考以下文章

node.js + coffeescript + jasmine 的好 IDE [关闭]

将 CoffeeScript 项目转换为 JavaScript(不缩小)? [关闭]

HTML5 移动样板 Coffeescript 调用 [关闭]

在多维数组javascript或coffeescript中获取最大值

逐行调试 CoffeeScript

jQuery DataTables 行重新排序和 CoffeeScript