Javascript 语法错误:保留字“;功能“;

Javascript 语法错误:保留字“;功能“;,javascript,coffeescript,hubot,Javascript,Coffeescript,Hubot,我正在尝试为Github的Hubot编写一个脚本,它使用TooTallNate的节点Spotify Web通过Spotify播放音乐,而我对CoffeeScript(Hubot脚本是用什么编写的)有些陌生。我在这里写下了第一个命令“播放”: 在运行bin/hubot时,我得到了错误“语法错误,保留字“function”,所以我说,ok,并按照另一个StackOverflow问题中的建议将“function”更改为“->”。使其看起来如下: 但是仍然得到了错误 错误:无法加载/home/xbm

我正在尝试为Github的Hubot编写一个脚本,它使用TooTallNate的节点Spotify Web通过Spotify播放音乐,而我对CoffeeScript(Hubot脚本是用什么编写的)有些陌生。我在这里写下了第一个命令“播放”:

在运行bin/hubot时,我得到了错误“语法错误,保留字“function”,所以我说,ok,并按照另一个StackOverflow问题中的建议将“function”更改为“->”。使其看起来如下:

但是仍然得到了错误

错误:无法加载/home/xbmc/cbot/lisa/scripts/spotify:SyntaxError:reserved word“function”


是因为依赖关系吗?我真的被困在这里了。

CoffeeScript的函数语法是

(arguments...) ->
    body
而不是

-> (arguments...) {
    body
}
您也有正确的语法:

robot.respond /play (.*)/i, (message) ->
    uri = message.match[1]
    ....

你从某处复制粘贴了一个代码片段吗?

是最开始的部分之一。你不只是把
函数
改成
->
。这并不是那么简单。在Javascript中函数是
函数(args){body}
,但在咖啡脚本中它是
(args)->body

但为了简洁起见,当您有以下内容时:

Spotify.login(username, password, function (err, spotify)) {
这不适用于CoffeeScript,因为这不是声明函数的语法。您需要:

Spotify.login username, password, (err, spotify) ->
  # function body
这里也是一样:

spotify.get(uri, function(err, track){
应该是:

spotify.get uri, (err, track) ->

您是在使用CoffeeScript(如您的问题所述)还是在使用JavaScript(如您放入标记)呢?这看起来不对
spotify.get(uri,->(err,track){
。此外,您还需要将格式化代码放入SO(或任何在线位置)正在将选项卡转换为spaces.CoffeeScript,很抱歉,我完全忘记为其添加标记。问题中必须包含代码,而不是外部代码托管服务中的代码。pastebins中的代码不正确;JS和CoffeeScript混合在一起。问题“必须证明对问题的最低理解”".有些什么,我一直在尝试为hubot编写一个脚本来控制XBMC,所以我了解了一些事情,然后我尝试着遵循这个例子,同时也尝试确保它对hubot有效。你的参考是JavaScript。你在写咖啡脚本。这就像为你的英语课堂作文挑选单词一样《浮士德》德语版。谢谢,我很感激!
spotify.get uri, (err, track) ->