题记:
这几天一直在学习Node.js,正好学习到了Node的process对象,以及此对象中的一些内容。下面,今天就来讲讲怎么利用原生的process来实现,基本的循环输入!
正文:
首先呢,我们要先来认识一下process对象,什么是process对象呢?process对象其实就是代表着Node.js的应用程序,也是一个全局对象。再次不在赘述,今天我们主要来看看process对象的两个比较特别的属性stdin与stdout。
-
stdin:属性值为一个可用于写入标准输入流的对象,在默认情况下标准输入流是暂停状态需要使用
process.stdin.resume();
- stdout:属性值为一个可用于写入标准输出流的对象
了解了基本知识,我们可以来看看代码如何实现process的循环输入
process.stdin.setEncoding('utf8'); process.stdin.on('readable', function(){ var chunk = process.stdin.read(); // 获取到输入的信息 if(typeof chunk === 'string'){ chunk = chunk.slice(0,-2); // 这个是利用切片,切掉我们的回车\n process.stdout.write('stringLength:'+ chunk.length +'\n'); } if(chunk === ''){ process.stdin.emit('end'); // 触发end事件 return } if (chunk !== null) { process.stdout.write('data: '+ chunk +'\n'); } }); process.stdin.on('end', function() { process.stdout.write('end'); });
大家可以看到,当我输入字符串时,可以获取到我字符串的长度,并输出长度与字符串,
而我只输入回车时,我用
slice(0,-2)
剪切掉了\n,实现了过滤回车的效果。
其中值得注意的是,如何触发process.stdin的end事件!
使用
process.stdin.exit()
并不能触发end事件,而我们只能利用
process.stdin.emit('end');
来触发,值得我们注意哦!也有助于我们想用node来刷题的同学使用!
相关推荐
Node.js异步事件驱动的特点,使它内建了事件循环和事件发射器机制。 - **events.EventEmitter**:用于实现事件发射器。 ### Buffers缓冲区 在Node.js中,Buffer类用于表示固定长度的字节序列,这些字节序列用于...
标题中的“Node.js-tmpin-添加stdin支持至任何CLI应用程序接受文件输入”指的是一个名为“tmpin”的Node.js模块,它的主要功能是为命令行界面(CLI)应用程序添加标准输入(stdin)的支持,以便这些应用程序能够接收...
在Node.js环境中,标准输入(stdin)是程序接收输入数据的一种方式,通常用于命令行工具。`get-stdin`是一个非常实用的模块,它允许开发者简单地从stdin获取数据,无论是作为字符串还是缓冲区。这个模块对于那些需要...
Node.js以其非阻塞I/O模型和JavaScript的便捷性在Web开发中占据了一席之地,而Python则以其强大的科学计算、数据分析以及机器学习库而闻名。当我们需要将这两种技术结合时,"PyNode"的概念就应运而生了。本文将详细...
5. **控制台操作**:Node.js提供了一些API,如`console.log()`用于打印信息到控制台,以及`process.stdin`和`process.stdout`来读取用户输入和输出游戏内容。 6. **游戏逻辑**:开发游戏需要编写游戏规则和逻辑。这...
- **process.nextTick(callback)**: 在下一次事件循环开始之前执行回调函数。 - **process.umask([mask])**: 文件权限掩码。 - **process.uptime()**: 进程运行时间。 - **process.hrtime()**: 高精度时间。 #### ...
Node.js作为一款广泛使用的服务器端JavaScript运行环境,其设计之初就秉承了异步和事件驱动的原则,允许开发者构建轻量级的网络应用。在Node.js中,进程管理是进行性能优化和资源高效使用的重要方面。Node.js的进程...
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它让开发者可以在服务器端使用JavaScript编写代码,极大地拓宽了JavaScript的应用领域。Uniread是一款基于Node.js的命令行工具,设计灵感来源于Spritz,一个...
在Node.js中,我们可以使用子进程(child_process)模块来启动一个WebTorrent进程,然后通过特定的通信机制(如IPC,即进程间通信)与其他进程交换信息,从而实现对WebTorrent实例的控制。例如,我们可以在一个进程...
在Node.js环境中,`process`模块是一个全局对象,它提供了与当前Node.js进程相关的属性和方法,使得开发者能够与操作系统的交互变得更加便捷。这个模块在处理命令行接口、进程管理和错误处理等方面尤其有用,尤其在...
在Node.js环境中,每个应用程序都运行在一个单独的进程内,这个进程由`process`对象来表示,它是一个全局对象,提供了访问和控制当前进程的方法和属性。`process`对象是Node.js的核心特性之一,让我们深入了解它的...
Node.js进程与子进程之间的stdin、stdout、stderr管道默认是连接的,这些管道允许进程间进行数据的传递。需要注意的是,Node.js进程并不会立即消费传递给子进程的数据,这一点在内部使用了行缓冲I/O的程序中尤为明显...
Yode是Node.js的一个分支,它将其事件循环替换为GUI消息循环,它旨在与一起使用。 对Node.js的更改 事件循环已替换为本地GUI消息循环: 在Linux上是GTK+事件循环。 在macOS上是Cocoa运行循环; 在Windows上是Win...
Node.js 是一种基于 Chrome V8 引擎的 JavaScript 运行环境,专为构建网络应用而设计,尤其适合开发高性能的 I/O 密集型应用。Node.js 的设计思想是利用非阻塞I/O和事件驱动的方式,使其在单线程环境下也能高效地...
Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程。这个项目创建了一个“Node.js终端聊天室”,通过server.js和client.js两个核心文件实现。接下来,我们将深入...
在Node.js中,有三个特殊的文件描述符,分别是1、2和3,它们分别对应标准输入(stdin)、标准输出(stdout)和标准错误输出(stderr)。标准输入是只读的,它允许进程从控制台或其他进程通道读取数据;标准输出和...