Node.js字符串字面量输出双引号报错:无效或意外令牌
解决Node.js字符串字面量中双引号导致的语法错误问题
你的问题出在字符串拼接的语法错误上——拼接request.params.assignee之后的字符串片段时,没有正确用引号包裹,导致JavaScript无法解析未闭合的引号结构,从而抛出"Invalid or unexpected token"错误。
问题分析
看你代码里的日志字符串拼接部分:
mail + ' heeft gebruiker met naam "' + request.params.assignee + '" toegekend aan opdracht met als naam "' + request.params.name + '".'
问题核心是request.params.assignee + '" toegekend...'这一段:这里的" toegekend aan opdracht met als naam "'没有被单引号包裹,JavaScript会把开头的"当作新字符串的起始,但后续的'又形成了未闭合的单引号,直接触发语法错误。
解决方案
方案1:修复传统字符串拼接的引号
确保每个字符串片段都被单引号正确包裹,单引号内部的双引号可以直接使用,不需要转义:
logs_logic.addLog(mail + ' heeft gebruiker met naam "' + request.params.assignee + '" toegekend aan opdracht met als naam "' + request.params.name + '".');
(注:关键是把中间的字符串片段用单引号包裹,让每个拼接单元都是合法的字符串字面量)
方案2:使用ES6模板字符串(推荐)
用反引号()包裹整个字符串,变量通过${变量名}`的方式插入,这种写法不仅避免了繁琐的拼接,双引号也可以直接在字符串中使用,完全不会有语法问题:
logs_logic.addLog(`${mail} heeft gebruiker met naam "${request.params.assignee}" toegekend aan opdracht met als naam "${request.params.name}".`);
这种写法更清晰易读,也是当前Node.js项目中推荐的字符串格式化方式。
验证修复
把代码替换为上面任意一种方案后,重新运行Node.js服务,就能正常输出包含双引号的字符串,不会再出现语法错误了。
内容的提问来源于stack exchange,提问作者abstract christmas tree
相关产品推荐
相关产品推荐

