202201-06 Node.js 中的 fs 模块与Path模块方法详解 概述:文件系统模块是一个简单包装的标准POSIX文件I/O操作方法集。可以通过调用require("fs")来获取该模块。文件系统模块中的所有方法均有异步和同步版本。文件系统模块中的异步方法需要一个完成时的回调函数作为最后一个传入形参。回调函数的构成由调用的异步方法所决定,通常情况下回调函数的第一个形参为返回的错误信息。如果异步操作执行正确并返回,该错误形参则为null或者undefined。如果使用的是同步版本的操作方法,... 继续阅读 >
202110-28 nodejs利用readline提示输入内容实例代码 目录前言1.bat执行js2.终端提示输入版本号、执行打包命令3.修改版本号文件总结前言最近进行小版本发包测试时忘记修改版本号了,进而想到在打包前提示输入版本号,然后把版本号打进版本说明内。最终效果为双击bat文件在终端内提示输入版本号,输入完成后保存版本号。虽说批处理也可以做这事,但用js来写更得心应手点,故选用js处理。过程分为四步bat执行js终端提示输入版本号、执行打包命令修改版本号文件gulp读... 继续阅读 >
202110-25 详细谈谈NodeJS进程是如何退出的 目录前言主动退出Exceptions,Rejections和EmittedErrors信号小结前言有几种因素可以导致NodeJS进程退出。在这些因素中,有些是可预防的,比如代码抛出了一个异常;有些是不可预防的,比如内存耗尽。process这个全局变量是一个EventEmitter实例,如果进程优雅退出,process会派发一个exit事件。应用代码可以监听这个事件,来做最后的清理工作。下面的表格列举了可以导致进程退出的因素。操作... 继续阅读 >
202110-15 nodejs将JSON字符串转化为JSON对象报错的解决 如何将JSON字符串转化为JSON对象?JSON.parse(str)JSON是javascript的一个内置对象,提供了转换JSON对象与字符串互相转换的方法;问题来了,道理我都懂可是就是报错!这是我的一个JSON文件,里面是一些定义的JSON测试数据;这是核心代码;这是报错的信息;为什么报错?因为我的json文件读出来的开头有一个空格。就这回事。ok,修改代码,测试使用trim去掉开头多余的空格ok,通过!nodejs解析JSON数据在no... 继续阅读 >
202109-13 nodejs管理工具nvm安装过程详解 nvmnvm负责管理多个版本的nodejs安装:https://github.com/coreybutler/nvm-windows/releases下载nvm-setup.zip,nvm-noinstall.zip点击nvm-setup.exe安装,一路下一步,这里安装到C:\dev\nvm,安装完成后自动配置了环境变量:NVM_HOME,NVM_SYMLINK,也会添加到Path验证是否安装成功,打开命令行cmdnvm常用的命令 nvmlist查看当前安装的Node.js所有版本号nvminstall版本号安装指定版本的Node.jsnvmuninstall版本号卸载指定版... 继续阅读 >
202108-31 详解NodeJS模块化 目录一、前言二、正文2.1、什么是模块2.2、Resolving2.3、require.resolve2.4、模块间的父子依赖关系2.5、exports,module.exports2.6、模块循环依赖2.7、.json和.node2.8、Wrapping2.9、Cache三、总结一、前言我们知道,Node.js是基于CommonJS规范进行模块化管理的,模块化是面对复杂的业务场景不可或缺的工具,或许你经常使用它,但却从没有系统的了解过,所以今天我们来聊一聊Node.js模块化你所需要知道的一些事儿,一探Node.js... 继续阅读 >
202108-06 浅谈nodejs中创建cluster 目录cluster集群cluster详解cluster中的eventcluster中的方法cluster中的属性cluster中的worker总结cluster集群我们知道,nodejs的eventloop或者说事件响应处理器是单线程的,但是现在的CPU基本上都是多核的,为了充分利用现代CPU多核的特性,我们可以创建cluster,从而使多个子进程来共享同一个服务器端口。也就是说,通过cluster,我们可以使用多个子进程来服务处理同一个端口的请求。先看一个简单的httpserver中使用cluster的... 继续阅读 >
202107-08 如何写Node.JS版本小游戏 目录概述打造流程相关apireadline基础使用chalkclear步骤补充说明完整代码抛砖引玉概述今天就利用Node.JS为大家带来简单有趣的的剪刀石头布的小游戏。打造流程引入模块定义简单石头布行为命令、当前局数(三局两胜)、得分情况、电脑随机出的行为(剪刀/石头/布)定义关联逐行读取流清屏打印开局提示信息监听line事件,根据读取流(用户输入)判断用户是要结束游戏,还是出招啦监听close事件,如果玩... 继续阅读 >
202107-01 详解Node.js如何处理ES6模块 目录一、两种模块的差异二、Node.js的区分三、CommonJS模块加载ES6模块四、ES6模块加载CommonJS模块五、同时支持两种格式的模块一、两种模块的差异ES6模块和CommonJS模块有很大的差异。语法上面,CommonJS模块使用require()加载和module.exports输出,ES6模块使用import和export。用法上面,require()是同步加载,后面的代码必须等待这个命令执行完,才会执行。import命令则是异步加载,或者更准确地说,ES6模块有一... 继续阅读 >
202106-23 如何用nodejs给C#写一个数据表的实体类生成工具 虽然微软提供了T4模板,但是我感觉非常难用。哪儿比得上直接用脚本来写模板来的爽。因为要给一个老项目做周边的工具,需要连接到数据库。我习惯性用EntityFrameworkCore来做,因为毕竟从出道开始就一直在用的一个ORM。EF6时代,vs提供了dbfirst,但是只是针对sqlserver好像。因为这次的数据库是MySQL,所以vs很多东西都支持不够了。但是支持不够就自己动手丰衣足食嘛。我们使用ejs这个模板引擎来做生成器。npminstallejs然后用查... 继续阅读 >
202106-19 详解nodejs中的异步迭代器 前言从Node.jsv10.0.0开始,异步迭代器就出现中了,最近它们在社区中的吸引力越来越大。在本文中,我们将讨论异步迭代器的作用,还将解决它们可能用于什么目的的问题。什么是异步迭代器那么什么是异步迭代器?它们实际上是以前可用的迭代器的异步版本。当我们不知道迭代的值和最终状态时,可以使用异步迭代器,最终我们得到可以解决{value:any,done:boolean}对象的promise。我们还获得了for-await-of循环,以帮助我们循环异... 继续阅读 >
202106-12 详解nodejs内置模块 概述nodejs内置模块指的是除默认提供的语法之外,提供的美容,无需下载,直接引入,引入只写名称即可。nodejs内置模块:1、path模块 用于处理文件路径。path.normalize(路径解析,得到规范路径);path.join(路径合并);path.resolve(获取绝对路径);path.relative(获取相对路径)。......2、until模块 弥补js功能不足,新增API。util.format(格式化输出字符串);util.isArray(检查是否为数组);util.RegExp(是不是正则);u... 继续阅读 >
202106-09 nodejs模块系统源码分析 概述Node.js的出现使得前端工程师可以跨端工作在服务器上,当然,一个新的运行环境的诞生亦会带来新的模块、功能、抑或是思想上的革新,本文将带领读者领略Node.js(以下简称Node)的模块设计思想以及剖析部分核心源码实现。CommonJS规范Node最初遵循CommonJS规范来实现自己的模块系统,同时做了一部分区别于规范的定制。CommonJS规范是为了解决JavaScript的作用域问题而定义的模块形式,它可以使每个模块在它自身的命名空间... 继续阅读 >
202106-08 浅谈JS和Nodejs中的事件驱动 事件驱动和发布-订阅事件驱动架构是建立在软件开发中一种通用模式上的,这种模式被称为发布-订阅或观察者模式。在事件驱动架构中,至少有两个参与者:主题(subject)和观察者(observer)。主题就像调频收音机一样,向有兴趣收听该主题所说内容的观察者进行广播。观察者可能只有一个,也可能有一百个,这都没有关系,只要主题有一些要广播的消息就够了。请记住,事件驱动、发布-订阅和观察者模式在实践中不是一回事,但在理想情况... 继续阅读 >
202106-08 如何在Nodejs中使用模块fs文件系统 概述node的fs文档密密麻麻的api非常多,毕竟全面支持对文件系统的操作。文档组织的很好,操作基本分为文件操作、目录操作、文件信息、流这个大方面,编程方式也支持同步、异步和Promise。本文记录了几个文档中没详细描写的问题,可以更好地串联fs文档思路:文件描述符同步、异步与Promise目录与目录项文件信息stream文件描述符文件描述符是一个非负整数。它是一个索引值,操作系统可以根据它来找到对应的... 继续阅读 >
202106-05 详解Node.js中间件是怎样工作的 什么是Express中间件?中间件在字面上的意思是你在软件的一层和另一层中间放置的任何东西。Express中间件是在对Express服务器请求的生命周期内所执行的函数。每个中间件都可以访问其被附加到的所有路由的HTTP请求和响应。另外,中间件可以终止HTTP请求,也可以用next将其传递给另一个中间件函数。中间件的这种“链”使你可以对代码进行划分并创建可重用的中间件。编写Express中间件的要求你需要安装... 继续阅读 >