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

Node.js 18.16.0引入readline后程序异常退出问题求助

问题原因及解决方法

核心原因

你遇到的字符重复、代码被逐行解析为交互式输入的问题,本质是在Node.js交互式解释器(REPL)中直接粘贴了完整脚本代码,而非通过文件执行脚本。

REPL是Node.js的交互式命令行环境,会逐行解析输入的代码;而readline模块会接管标准输入输出,和REPL的输入处理机制冲突,最终导致字符重复、程序异常退出。

解决步骤

  1. 将代码保存为独立.js文件
    新建一个input-demo.js文件,把你复制的readline代码完整粘贴进去,同时修正网页代码中的HTML转义字符(比如将"替换为普通双引号")。

    修正后的第一个示例代码如下:

    const readline = require('readline').createInterface({
      input: process.stdin,
      output: process.stdout,
    });
    
    readline.question(`What's your name?`, name => {
      console.log(`Hi ${name}!`);
      readline.close();
    });
    
  2. 在命令行中执行该文件
    打开Windows命令提示符(CMD)或PowerShell,切换到文件所在目录,执行命令:

    node input-demo.js
    
  3. 验证效果
    执行后会直接显示提问信息,输入内容后正常输出结果,不会进入REPL模式,也不会出现字符重复问题。

额外注意点

  • 禁止在REPL中运行依赖readline的脚本:readline会接管process.stdin,和REPL的输入机制天然冲突,必然导致异常。
  • 复制网页代码时注意转义字符:网页展示的代码可能包含HTML转义符号,需替换为原生JS对应字符后再保存使用。

内容的提问来源于stack exchange,提问作者Ξένη Γήινος

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 23:42:38