node readline模块

本文详细介绍了Node.js中的全局对象如__filename和__dirname,以及process对象的使用,包括其stdout和stdin功能。同时,着重讲解了readline模块如何实现标准输入输出,包括事件监听和处理用户输入的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、node的全局对象
1. 全局变量

​ (1)__filename:代表的是正在执行的文件的文件名。带绝对路径的文件名(绝对路径 + 文件名)

​ (2)__dirname:代表当前正在执行的文件所在的目录

console.log('文件名:'+__filename)
console.log('文件路径:'+__dirname)

2. 全局对象

​ process对象 :存放的node的进程信息,可以放在程序的任何位置,也不用require进行加载

console.log('系统信息:',process)

程序:静态的代码

​ 进程:运行中的程序

​ 线程:是进程的一个小的单元

​ process对象的属性:

(1)stdout:返回的是一个对象,代表一个标准输出。它下面的方法write,作用和console.log方法一样

process.stdout.write('祝贺')

(2)stdin:返回的是一个对象,代表一个标准输入。

process.stdout.write('请输入一个数:')
process.stdin.on('data',(result)=>{
    // process.stdout.write('你输入的数据是:'+result.toString().trim())
    let s=1
    for (let i = 1; i <= parseInt(result); i++) {
        s = s * i
    }
    process.stdout.write(parseInt(result)+'!='+s)
    process.exit()//结束进程
})

二、node的readline模块

1. 是node中实现标准输入输出的模块,可以逐行的读取终端的数据。使用时必须通过require引入

2. 使用方法:

​ (1)引入模块:require(‘readline’)​​​​​​​

const readline = require('readline')

(2)创建readline模块的实例,该实例的input属性值就是process.stdin,output属性值是process.stdout

let  r1 = readline.createInterface({
    input: process.stdin,
    output: process.stdout
})

(3)注册事件监听:完成输入输出操作

//3. 注册question事件监听:实现数据的输入
r1.question('请输入数据:',(result)=>{
    console.log('你输入的数据是:',result)
    r1.close()  //当r1对象调用close()函数时,触发close事件
})

举个栗子:


// 引入readline模块
var readline = require('readline');
 
//创建readline接口实例
var  rl = readline.createInterface({
    input:process.stdin,
    output:process.stdout
});
 
// question方法
rl.question("今天天气怎么样?",function(answer){
    console.log("今日天气:"+answer);
    rl.close();// 不加close,则不会结束
});
 
// close事件监听
rl.on("close", function(){
    process.exit(0)// 结束程序
});

readline模块的事件:line :”会在用户输入一行,按回车键后触发

"line"事件,这个事件就是在用户输完一行,按下回车后就会触发的事件,它会将用户输入的数据通过回调函数传回来,可在此方法里处理用户输入的数据

// 引入readline模块
var readline = require('readline');
 
//创建readline接口实例
var  rl = readline.createInterface({
    input:process.stdin,
    output:process.stdout
});

r1.on('line',(result)=>{
    处理代码
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值