21xrx.com
2024-12-22 22:06:46 Sunday
登录
文章检索 我的文章 写文章
Node.js 多行输入操作
2023-06-23 04:44:38 深夜i     --     --
Node js 多行输入 数据操作 控制台应用 JavaScript编程

在 Node.js 中,有时需要从用户获取多行输入,比如读取文件内容或者从命令行获取用户输入的多行文本。本文将介绍如何在 Node.js 中完成多行输入操作。

Node.js 读取文件内容

在 Node.js 中,可以使用 fs 模块的 readFile 方法读取文件内容,如下所示:


const fs = require('fs');

fs.readFile('myfile.txt', 'utf8', function(err, data) {

 if (err) throw err;

 console.log(data);

});

其中,'utf8' 表示以 UTF-8 编码读取文件内容。当调用 readFile 方法时,Node.js 会在后台异步打开文件、读取文件内容,并在读取完成后调用回调函数。在回调函数中,可以通过 data 参数获取文件内容。

Node.js 命令行读取用户输入

如果需要从命令行获取用户输入,可以使用 readline 模块的 createInterface 方法创建 readline.Interface 实例,如下所示:


const readline = require('readline');

const rl = readline.createInterface(

 input: process.stdin);

rl.question('What do you think of Node.js? ', (answer) => {

 console.log(`Thank you for your valuable feedback: ${answer}`);

 rl.close();

});

其中,rl.question 方法会在命令行中输出问句,并等待用户输入,然后调用回调函数。在回调函数中,可以通过 answer 参数获取用户输入的内容。最后,需要调用 rl.close 方法关闭接口。

如果需要多行输入,可以使用递归函数实现,如下所示:


const readline = require('readline');

const rl = readline.createInterface(

 input: process.stdin);

function readMultipleLines() {

 rl.question('Please input a line of text (or type "exit" to quit): ', (answer) => {

  if (answer.trim().toLowerCase() == 'exit') {

   rl.close();

  } else {

   console.log(`You input: ${answer}`);

   readMultipleLines();

  }

 });

}

readMultipleLines();

在 readMultipleLines 函数中,如果用户输入了 'exit',则调用 rl.close 方法关闭接口;否则,输出用户输入的内容,并递归调用 readMultipleLines 函数。这样就可以实现多行输入操作了。

总结

本文介绍了如何在 Node.js 中完成多行输入操作。通过使用 fs 模块的 readFile 方法和 readline 模块的 createInterface 方法,可以分别实现从文件读取内容和从命令行获取用户输入的功能。通过递归函数,可以实现多行输入操作。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复