You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Node.js的.editor模式下正确粘贴多行字符串?

在Node.js REPL的.editor模式下粘贴多行SQL字符串的正确方法

你遇到的问题是因为普通双引号字符串在JavaScript里不允许直接换行,而.editor模式会严格解析输入的代码语法。以下是几种可行的解决办法:

方法一:使用ES6模板字符串(推荐)

模板字符串用反引号(``)包裹,原生支持多行内容,不需要任何转义,是最省心的方式:

> .editor
// Entering editor mode (Ctrl+D to finish, Ctrl+C to cancel)
s=`with docs as (
    SELECT
        "documentNumber"
)`

粘贴完成后按Ctrl+D就能正常执行,不会触发语法错误。

方法二:双引号字符串换行时加反斜杠转义

如果一定要用双引号,需要在每行末尾添加反斜杠(\)来转义换行符:

> .editor
// Entering editor mode (Ctrl+D to finish, Ctrl+C to cancel)
s="with docs as (\
    SELECT\
        \"documentNumber\"\
)"

注意每行末尾的反斜杠必须是该行最后一个字符,不能有空格。

方法三:多行字符串拼接

也可以用加号(+)把每行字符串拼接起来:

> .editor
// Entering editor mode (Ctrl+D to finish, Ctrl+C to cancel)
s="with docs as (" +
    "SELECT" +
    "    \"documentNumber\""

不过这种写法比较繁琐,不如模板字符串直观。

本质原因是Node.js的REPL会把.editor模式下的输入当作完整的JavaScript代码解析,普通双引号字符串不允许未经转义的换行,而模板字符串从ES6开始就支持原生多行,Node.js v20完全兼容这个特性,所以优先推荐第一种方法。

内容的提问来源于stack exchange,提问作者jcollum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 16:55:57