Javascript SyntaxError:意外标记

Javascript SyntaxError:意外标记,javascript,node.js,syntax-error,Javascript,Node.js,Syntax Error,自几个月前以来,没有对lang.js文件进行任何更改,但在尝试在本地预览时突然出现语法错误,无法部署更改 不知道为什么会发生这种情况-请有人帮忙好吗?非常感谢 披露/警告:我没有编程知识 MacBook:pty-bus Ying$ node index.js /Users/Ying/Desktop/pty-bus/lang.js:19 ...req.lang.marketing.global, ^^^ SyntaxError: Unexpected token ... a

自几个月前以来,没有对lang.js文件进行任何更改,但在尝试在本地预览时突然出现语法错误,无法部署更改

不知道为什么会发生这种情况-请有人帮忙好吗?非常感谢

披露/警告:我没有编程知识

MacBook:pty-bus Ying$ node index.js
/Users/Ying/Desktop/pty-bus/lang.js:19
    ...req.lang.marketing.global,
    ^^^
SyntaxError: Unexpected token ...
    at Object.exports.runInThisContext (vm.js:78:16)
    at Module._compile (module.js:543:28)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/Users/Ying/Desktop/pty-bus/index.js:20:36)
    at Module._compile (module.js:571:32)

看起来您使用扩展运算符的能力已被删除。我猜您最近更改了节点版本,或者编辑了babelrc或webpack配置。不管怎样,我认为该文件中的当前代码没有任何问题。

Tt看起来像是节点v7.4.0不支持扩展运算符-更改
让renderObj={…}

let renderObj = {
    title: req.lang.titles[template],
    site_title: req.lang.site_title,
    site_description: req.lang.site_description,
    langCode: req.langCode,
    path: req.path
  };

Object.assign(renderObj,
  req.lang.marketing.global,
  (req.lang.marketing[template] || {}),
  vars
);  
renderObj.lang = Object.assign({}, (req.lang.marketing.global.language || {}));

Node.js v7.4.0有V8 5.4,它支持数组的
运算符,但不支持对象。您至少需要一个Node.js 8分支版本(v8.15.0)。您使用的Node版本是什么?(键入
node--version
)您在
中丢失了我,我没有任何编程知识
@quentinV7.4。0@Quentin刚刚检查,节点版本正确。我发现这真的很奇怪,因为我已经几个月没有接触过这个文件了,而且我所有其他的提交和部署工作都很好。请看-Node.js支持扩展语法,至少从5.12开始就没有任何问题。@Quentin-不,你错了-我检查了6.3.1版,在7.4.0中,“
”不起作用,
适用于数组,但不适用于对象。
let renderObj = {
    title: req.lang.titles[template],
    site_title: req.lang.site_title,
    site_description: req.lang.site_description,
    langCode: req.langCode,
    path: req.path
  };

Object.assign(renderObj,
  req.lang.marketing.global,
  (req.lang.marketing[template] || {}),
  vars
);  
renderObj.lang = Object.assign({}, (req.lang.marketing.global.language || {}));