node
文章平均质量分 79
baoleilei6
微信号:bll1286971588 欢迎交友
展开
-
node Event Loop
2.5. Event Loop运行机制node.js启动时会初始化事件循环(Event Loop)机制,每次循环都会包含如下6个阶段,每个阶段都有一个先进先出(FIFO)的用于执行回调的队列,通常事件循环运行到某个阶段时,node.js会先执行该阶段的操作,然后再去执行该阶段队列里的回调,直到队列里的内容耗尽,或者执行的回调数量达到最大(maximum number,最大值由当前机器性能决定)。每一个阶段完成后,事件循环就会检查这两个中间队列中是否有内容,如果有立马执行,直到这两个队列清空为止,等到它们转载 2022-01-07 08:24:05 · 199 阅读 · 0 评论 -
在NodeJS中玩转Protocol Buffer
Protocol Buffer入门教程Protocol Buffer是个什么鬼NodeJS开发者为何要跟Protocol Buffer打交道在NodeJS中实践Protocol Buffer协议选择支持protobuf的NodeJS第三方模块一个栗子书写proto文件编译 proto 文件编写 Writer编写Reader运行结果再举一个栗子编写proto编写client书写server运行结果其他高级特性嵌套MessageImport Message总结一下优点简转载 2021-11-14 14:39:04 · 836 阅读 · 0 评论 -
Node.js cluster 踩坑小结
内容主要分为三个部分,大触可以直接拉到文末看结论:Process:介绍进程与 process 对象 child_process:介绍子进程 & IPC 与踩坑 cluster:负载实现简介与踩坑1. Process首先是进程部分, 关于进程我们需要明确两个概念, 分别是:1)操作系统的的进程 (process)。 2)Node.js 的 process 对象。1)操作系统的的进程操作系统的进程是一个服务端非常基础的概念,基础到有点不好介绍(笑)。我们通常感知到进程都是通过各种转载 2021-11-14 09:46:30 · 438 阅读 · 0 评论 -
浅析 Node 进程与线程
前言进程与线程是操作系统中两个重要的角色,它们维系着不同程序的执行流程,通过系统内核的调度,完成多任务执行。今天我们从 Node.js(以下简称 Node)的角度来一起学习相关知识,通过本文读者将了解 Node 进程与线程的特点、代码层面的使用以及它们之间的通信。概念首先,我们还是回顾一下相关的定义:进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行...转载 2020-01-08 10:30:08 · 409 阅读 · 0 评论 -
Node.js Event Loop 的理解 Timers,process.nextTick()
写node.js有一段时间了,一直在理解event loop这个概念,国内外的文章翻阅了也不少,但是对event loop能讲解清楚的还是不多。 最后还是查阅的nodejs对event loop的官方解释才恍然大悟,如获至宝。写这篇文章的目的是将自己对该文章的理解做一个记录,官方文档链接The Node.js Event Loop, Timers, and process.nextTick()...转载 2019-01-03 08:04:28 · 342 阅读 · 0 评论 -
NODE.JS API —— PROCESS(进程)
// 说明 Node API 版本为 v0.10.31。 中文参考:http://nodeapi.ucdok.com/#/api/,http://blog.sina.com.cn/oleoneoy 本段为博主注解。目录● 进程 ○ Event: 'exit' ○ Event: 'uncaughtException' ○ Signal Ev...转载 2019-01-03 08:18:25 · 1399 阅读 · 0 评论 -
一篇帮你彻底弄懂NodeJs中的Buffer
原文链接你是不是和我一样,对Node.js中的Buffer, Stream,和二进制数据一直都是很模糊的印象? 或者有的时候觉得,哎,我会用就行了,这些原理、底层的东西,应该交给Node.js的工程师们去理解。的确,这些名词可能会比较初学者感到恐惧和陌生,特别是那些刚从前端转全栈,做Node.js,却没有计算机基础的同学来说。但是很遗憾,很多教程或者书籍都会直接跳过这些原理和解释的...原创 2019-02-28 17:33:11 · 13363 阅读 · 14 评论 -
浅析nodejs中的stream(流)
这篇文章我们来聊一下nodejs中的stream,也就是nodejs中的流。什么是流呢?从字面上来看我们应该可以想到水流,对吧。那我们不妨想一下水流有什么特点呢?比如我们日常生活中的水龙头,流出来的水是有序且有方向的。nodejs中的流也是一样,是有序且有方向的。nodejs中有许多的对象或者方法都用到了流。比如说HTTP 请求和process.stdout就都是流的实例。...转载 2019-05-24 10:58:02 · 4707 阅读 · 0 评论 -
nodejs中的子进程,深入解析child_process模块和cluster模块
node遵循的是单线程单进程的模式,node的单线程是指js的引擎只有一个实例,且在nodejs的主线程中执行,同时node以事件驱动的方式处理IO等异步操作。node的单线程模式,只维持一个主线程,大大减少了线程间切换的开销。 但是node的单线程使得在主线程不能进行CPU密集型操作,否则会阻塞主线程。对于CPU密集型操作,在node中通过child_process可以创建独立的子进程...转载 2019-09-18 17:19:51 · 673 阅读 · 0 评论 -
使用cluster模块启动多进程nodejs应用
使用命令行的方式运行nodejs web应用,一旦程序有bug造成进程崩溃,应用就不能继续提供服务了;并且,nodejs是单线程的模式,不能充分利用服务器的多核资源。使用node的cluster模块可以监控应用进程,退出后重新启动node应用进程,并可以启动多个node应用进程,做到负载均衡,充分利用资源。启动单个进程node bin/www文件www的内容为:/** * ...转载 2019-09-19 16:09:35 · 955 阅读 · 0 评论 -
JavaScript 模块的循环加载
"循环加载"(circular dependency)指的是,a脚本的执行依赖b脚本,而b脚本的执行又依赖a脚本。// a.jsvar b = require('b');// b.jsvar a = require('a');通常,"循环加载"表示存在强耦合,如果处理不好,还可能导致递归加载,使得程序无法执行,因此应该避免出现。但是实际上,这是很难避免的,尤其是依...转载 2019-09-19 18:28:02 · 585 阅读 · 0 评论 -
ES6的模块循环加载
首先,执行a.mjs以后,引擎发现它加载了b.mjs,因此会优先执行b.mjs,然后再执行a.mjs。接着,执行b.mjs的时候,已知它从a.mjs输入了foo接口,这时不会去执行a.mjs,而是认为这个接口已经存在了,继续往下执行。总是先执行依赖是正确的,但是发现循环的时候,并不会继续执行下去。而是认为这个接口以存在这个接口确实存在了。Module 执行分 Parse, I...转载 2019-09-19 18:29:19 · 560 阅读 · 0 评论 -
module.exports 与 exports 的区别解释【极简版】这还看不懂就没救了。。
// -------- node.js core --------var module = { exports: { }};exports = module.exports;// -------- 下面正常写代码 --------exports.name = 'Alan';exports.test = function () { console.log('hi'...转载 2019-01-02 23:31:16 · 377 阅读 · 0 评论 -
nodejs cluster模块分析
最近做了点nodejs项目,对nodejs的cluster怎么利用多进程处理请求产生了疑问,于是着手进行了研究,之后发现这其中竟大有文章!一切还是先从遥远的TCP说起吧。。。TCP与Socket说到TCP,相信很多人都相当了解了,大学已经教过,但是又相信有很多人也不是很了解,要不是当时没听,要不也可能是自身的编程能力不足以去实践相关内容,写到这我还特意去翻了一下大学的计算机网络教材,内容是...转载 2019-01-02 23:08:36 · 785 阅读 · 0 评论 -
使用 Node.js 搭建一个 API 网关
阅读目录(Content)微服务和消费者什么是 API 网关?Node.js 用于前端团队的 API 网关API 网关功能路由和版本控制网关设计的升级认证数据汇总序列化格式转换协议转换速率限制和缓存超负荷的 API 网关Node.js API 网关Node.js API 网关总结原文地址:Building an API G转载 2017-12-13 18:24:02 · 2686 阅读 · 0 评论 -
node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用_node.js
在开发或调试Node.js应用程序的时候,当你修改js文件后,总是要按下CTRL+C终止程序,然后再重新启动,即使是修改一点小小的参数,也总是要不断地重复这几个很烦人的操作。有没有办法做到当文件修改之后,Node.js自动重新启动(或重新加载文件)以节省时间呢?一开始我是想到用grunt的watch模块来监控文件变化,但后来在网上一查,原来我们想到的,别人早已想到,并且已经做得很好。Node转载 2017-12-26 11:33:26 · 641 阅读 · 0 评论 -
kao 结合 logger4j 使用
目录结构log_config.jsvar path = require('path');//错误日志输出完整路径var errorLogPath = path.resolve(__dirname, "../logs/error/error");//响应日志输出完整路径var responseLogPath = path.resolve(__dirname, "../logs/response/r原创 2018-01-02 17:14:43 · 436 阅读 · 0 评论 -
koa-router 7 回调中加异步
koa-router 7 的文档写的真是简洁啊。。。问题是这样的: 用koa-router的get方法时,我在异步中给ctx.body赋值了,导致最终页面显示不正确,但是又找不到办法让这个get方法的return在异步的回调中执行。查看文档时貌似并没有这种情况的解决。虽然当时猜可能用了promise对象,但一顿饭后居然以为之前试过了。。然后又搞了一会儿,发现没什么正常点的方法能转载 2017-12-29 11:22:02 · 734 阅读 · 0 评论 -
nodejs的模块系统(实例分析exprots和module.exprots)
转自https://www.cnblogs.com/jiuyi/p/6004877.html前言:工欲善其事,必先利其器。模块系统是nodejs组织管理代码的利器也是调用第三方代码的途径,本文将详细讲解nodejs的模块系统。在文章最后实例分析一下exprots和module.exprots。nodejs的模块什么是模块?node.js通过实现CommonJS的Modules/1....转载 2018-10-26 11:06:31 · 484 阅读 · 0 评论 -
Node-单线程、事件驱动、非阻塞I/O
Nodejs既然这么流行就肯定有它的博大精深之处,自然不是我这还没入门的小白可以掌握的,我就简单说一下目前自己的理解程度。一、单线程、非阻塞I/O、事件驱动这是nodejs的三个特点。单线程 Nodejs是单线程,和多线程相比: 优点:可以避免系统分配多线程以及线程间通信时的开销,可以更高效的利用cpu,降低内存的耗用。 缺点:一旦出现错误会导致整个程序崩溃,不擅长大量的计算,无...转载 2018-12-14 13:27:32 · 505 阅读 · 0 评论 -
node 中谈谈 Event Loop(事件循环)机制
在讲 Event Loop (事件循环)之前,我们来了解点 node 的东西,来帮助我们更加明白事件循环是干什么的Node 是什么Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,Node 不是一门语言,是让 js 运行在后端的,运行时不包括 js 全集,因为在服务端中不包含 DOM 和 BOM,Node 也提供了一些新的模块,比如 http,fs等模...转载 2018-12-14 14:05:28 · 1419 阅读 · 0 评论 -
path.join 与 path.resolve 的区别
1. 对于以/开始的路径片段,path.join只是简单的将该路径片段进行拼接,而path.resolve将以/开始的路径片段作为根目录,在此之前的路径将会被丢弃,就像是在terminal中使用cd命令一样。path.join('/a', '/b') // 'a/b'path.resolve('/a', '/b') // '/b' 2. path.resolve总是返回一个以相对于...转载 2018-12-28 11:04:00 · 817 阅读 · 0 评论 -
Docker搭建MySQL服务
Docker开源镜像前面我们已经安装好了Docker,也简单了解了Docker。那么我们可以尝试搭建一个MySQL服务。要搭建服务就要启动服务容器,要创建容易就要有镜像,Docker提供了一个类似Github的开源平台,提供开源镜像,放心可靠。(毕竟大家都看着源码呢)Docker开源镜像传送门大概步骤1. 下载MySQL镜像 2. 创建运行容器好像很简单是吧?详细步...转载 2018-12-23 20:30:50 · 502 阅读 · 0 评论 -
Nodejs最好的ORM - TypeORM
https://www.cnblogs.com/brookshi/p/6446155.html?utm_source=tuicool&utm_medium=referral TypeORM github: https://github.com/typeorm/typeorm这篇译文是从TypeORM github上的使用说明上翻译过来的,已经提交PR并merge到库中了。 ...转载 2019-01-01 19:19:19 · 3967 阅读 · 0 评论 -
MongoDB基本命令用
成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作。输入help可以看到基本操作命令:show dbs:显示数据库列表 show collections:显示当前数据库中的集合(类似关系数据库中的表) show users:显示用户use :切换当前数据库,这和MS-SQL里面的意思一样 db.help():显示数据库操作命转载 2017-10-06 12:17:47 · 341 阅读 · 0 评论