【问题标题】:Nodejs "SyntaxError: Unexpected token ."Nodejs“语法错误:意外的令牌。”
【发布时间】:2019-06-28 06:52:53
【问题描述】:

我正在尝试运行比特币洞察浏览器 (https://www.dgbwiki.com/index.php?title=Running_your_own_Insight_explorer)。使用节点 v0.10.48 但我收到此错误(在互联网上找不到相同的问题):

digibyte@derecha-virtual-machine:~/insight$ /home/digibyte/.nvm/v0.10.48/bin/node ~/insight/node_modules/insight-bitcore-api/util/sync.js -D -v --rpc

/home/digibyte/insight/node_modules/insight-bitcore-api/node_modules/async/dist/async.js:52
    function apply(fn, ...args) {
                       ^
SyntaxError: Unexpected token .
    at Module._compile (module.js:439:25)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/home/digibyte/insight/node_modules/insight-bitcore-api/lib/HistoricSync.js:5:22)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)

有问题的第 52 行在这个函数中:

function apply(fn, ...args) { // <- line 52
    return (...callArgs) => fn(...args,...callArgs);
}

在我看来没问题我不知道为什么 node 会出错。

【问题讨论】:

  • 您使用的是哪个 IDE(例如 VS Code)?
  • 不是我的代码。

标签: node.js syntax-error


【解决方案1】:

Node.js 0.10.48 不支持扩展运算符。第一个支持扩展运算符的 Node.js 版本是 5,但它已经过时并且不再维护。如果您已经在升级,我会升级到 LTS 仍支持的较新版本之一。

【讨论】:

    【解决方案2】:

    根据https://node.green/#ES2015-syntax-rest-parameters,node v0.10.48不支持rest参数(...args)。

    您应该使用更新版本的节点(至少 v6.4.0 作为默认支持,或者至少 v4.9.1 带有--harmony 标志 (node --harmony))

    【讨论】:

      【解决方案3】:

      Apply 将数组作为第二个参数。在这里,spread 运算符 (...) 正在对元素进行布局,因此您无需将数组传递给函数,而是基本上以逗号分隔的参数。

      尝试使用.call 代替.apply,或通过args 代替...args

      【讨论】:

        猜你喜欢
        • 2016-10-31
        • 1970-01-01
        • 1970-01-01
        • 2016-09-04
        • 2019-10-28
        • 2019-01-17
        • 1970-01-01
        • 1970-01-01
        • 2017-10-07
        相关资源
        最近更新 更多