热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何用Node.js构建JavaScript命令行界面

如何用Node.js构建JavaScript命令行界面原

如何用 Node.js 构建 Javascript 命令行界面

原文:https://www . geesforgeks . org/how-build-a-Javascript-命令行-interface-CLI-with-node-js/

在本文中,我们将看到如何在 NodeJs 的帮助下创建一个 Javascript CLI。

Javascript 作为一种解释语言,它是一种非常动态的语言,由于它为我们提供了许多设施,由于它,许多任务变得非常容易,任何人都可以非常容易地理解它们,所以在当今时代,Javascript 它是世界上最流行的编程语言之一,这就是为什么今天许多工具都内置在其中。

在本文中,我们将借助 Javascript 构建一个 CLI 应用程序。我们需要 NodeJs 来直接运行 Javascript。如果你没有在电脑上安装 NodeJs 或者在 NodeJs 中遇到任何问题,那么参考这篇文章。

方法:我们想用 Javascript 做一个 CLI 应用程序,但是 Javascript 只在浏览器上运行,但是如果我们想在浏览器之外使用它,那么我们需要 NodeJs 提供的运行时,所以我们必须使用 NodeJS。然后我们将能够在 Javascript 的帮助下创建一个命令行界面应用程序。我们将使用 nodejs 的 readline 模块。

逐步实施:

第一步:第一步,我们设置一个 NodeJs 项目环境。如果您没有安装 NPM 或 NodeJs,请参考这篇文章。


  • 运行下面的命令并启动 node.js 项目

npm init -y

使用“-y”保留所有问题的默认答案。

项目结构:做了上面的事情之后,移动创建一个 index.js 文件来编写我们的代码,目录如下。

步骤 2: 现在我们将看到 NodeJs readline 模块的工作情况。

读取线模块允许一次读取一行数据流。它可以用 require()方法包含在代码中。我们可以在 readline 模块中输入我们想要的任何数据流,这允许我们使用标准的输入和输出流。或者,读线模块提供一个接口,用于一次一行地从可读流(如 process.stdin)中读取数据。可以使用访问它。readline 的 question 方法提供了一个查询-响应机制,我们使用 question 方法并传递两个参数,第一个是查询,第二个是自定义处理程序,将一个参数作为处理程序函数的输入。

语法:

readline.question(query, callback);

接受要调用的显示查询字符串和回调函数,作为用户对查询输入的响应。readline 的 createInterface 方法提供了一个使用 readline 及其方法的接口对象。

语法:

readline.createInterface();

现在让我们看看上述方法的代码实现。下面的代码显示了如何使用 readline 模块作为命令行界面接受用户的输入。

index.js

// import the readline module for work with stdin, or stdout.
const readline = require('readline');
// create a readline object to work with the stream.
// pass the stdin, or stdout in the current process.
const prompts = readline.createInterface(process.stdin, process.stdout);
// create a question or there handler.
prompts.question('Enter Learning Resources Name : ', (response) => {
    // check the response.
    if(response.toLocaleLowerCase() == 'gfg') {
        console.log("You are a part of the very huge learning community.");
    }else {
        console.log("Have a look at Geeksforgeeks, they solve many of your 
        technical doubts.");
    }
    // after the all work is done want to terminate this process.
    process.exit();
});

运行应用程序的步骤:

node index.js

输出:

说明:createInterface 方法用于创建一个接受用户输入的界面。它采用两个参数,当前进程的标准输入(stdin)和标准输出(stdout)。接下来,createInterface 对象的 question()方法用于向用户提示问题。第二个参数是回调函数,它将处理作为参数传递给它的用户输入。函数内部的逻辑将根据对用户输入值的评估显示适当的消息。process.exit()语句允许退出代码,否则接口将继续从标准输入中读取。


推荐阅读
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • 字节码开发笔记:深入解析与应用技巧 ... [详细]
  • TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得
    TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得 ... [详细]
  • 深入解析 Vue 中的 Axios 请求库
    本文深入探讨了 Vue 中的 Axios 请求库,详细解析了其核心功能与使用方法。Axios 是一个基于 Promise 的 HTTP 客户端,支持浏览器和 Node.js 环境。文章首先介绍了 Axios 的基本概念,随后通过具体示例展示了如何在 Vue 项目中集成和使用 Axios 进行数据请求。无论你是初学者还是有经验的开发者,本文都能为你解决 Vue.js 相关问题提供有价值的参考。 ... [详细]
  • 掌握PHP编程必备知识与技巧——全面教程在当今的PHP开发中,了解并运用最新的技术和最佳实践至关重要。本教程将详细介绍PHP编程的核心知识与实用技巧。首先,确保你正在使用PHP 5.3或更高版本,最好是最新版本,以充分利用其性能优化和新特性。此外,我们还将探讨代码结构、安全性和性能优化等方面的内容,帮助你成为一名更高效的PHP开发者。 ... [详细]
  • 在前文探讨了Spring如何为特定的bean选择合适的通知器后,本文将进一步深入分析Spring AOP框架中代理对象的生成机制。具体而言,我们将详细解析如何通过代理技术将通知器(Advisor)中包含的通知(Advice)应用到目标bean上,以实现切面编程的核心功能。 ... [详细]
  • 设计实战 | 10个Kotlin项目深度解析:首页模块开发详解
    设计实战 | 10个Kotlin项目深度解析:首页模块开发详解 ... [详细]
  • 在Python编程中,探讨了并发与并行的概念及其区别。并发指的是系统同时处理多个任务的能力,而并行则指在同一时间点上并行执行多个任务。文章详细解析了阻塞与非阻塞操作、同步与异步编程模型,以及IO多路复用技术的应用。通过模拟socket发送HTTP请求的过程,展示了如何创建连接、发送数据和接收响应,并强调了默认情况下socket的阻塞特性。此外,还介绍了如何利用这些技术优化网络通信性能和提高程序效率。 ... [详细]
  • Spring框架中枚举参数的正确使用方法与技巧
    本文详细阐述了在Spring Boot框架中正确使用枚举参数的方法与技巧,旨在帮助开发者更高效地掌握和应用枚举类型的数据传递,适合对Spring Boot感兴趣的读者深入学习。 ... [详细]
  • 本文深入解析了WCF Binding模型中的绑定元素,详细介绍了信道、信道管理器、信道监听器和信道工厂的概念与作用。从对象创建的角度来看,信道管理器负责信道的生成。具体而言,客户端的信道通过信道工厂进行实例化,而服务端则通过信道监听器来接收请求。文章还探讨了这些组件之间的交互机制及其在WCF通信中的重要性。 ... [详细]
  • MATLAB字典学习工具箱SPAMS:稀疏与字典学习的详细介绍、配置及应用实例
    SPAMS(Sparse Modeling Software)是一个强大的开源优化工具箱,专为解决多种稀疏估计问题而设计。该工具箱基于MATLAB,提供了丰富的算法和函数,适用于字典学习、信号处理和机器学习等领域。本文将详细介绍SPAMS的配置方法、核心功能及其在实际应用中的典型案例,帮助用户更好地理解和使用这一工具箱。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • POJ 2482 星空中的星星:利用线段树与扫描线算法解决
    在《POJ 2482 星空中的星星》问题中,通过运用线段树和扫描线算法,可以高效地解决星星在窗口内的计数问题。该方法不仅能够快速处理大规模数据,还能确保时间复杂度的最优性,适用于各种复杂的星空模拟场景。 ... [详细]
  • 本文探讨了如何利用Java代码获取当前本地操作系统中正在运行的进程列表及其详细信息。通过引入必要的包和类,开发者可以轻松地实现这一功能,为系统监控和管理提供有力支持。示例代码展示了具体实现方法,适用于需要了解系统进程状态的开发人员。 ... [详细]
author-avatar
兔子是不常吃萝卜的
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有