![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Node.js
小平果118
我是一匹奔腾的野马,需要你来征服。。。。。
展开
-
从libuv源码学习线程池
本文为学习记录:原文可以参考:libuv基础篇和Libuv学习线程池不像网络IO,libuv没有特定平台的异步IO原语可以依赖,所以当前是在线程池中执行阻塞(同步)IO来实现异步的。根据libuv官网对其架构的介绍,我们可以知道它并不是单线程的,它有一个线程池,用来处理文件IO、DSN查询等操作。在介绍线程池之前,先通过POSIX Threads介绍一下线程的基本操作,如果您对libuv的...原创 2020-02-09 18:37:29 · 947 阅读 · 0 评论 -
从libuv源码中学习二叉堆
阅读本文你需具备知识点二叉查找树2.准备纸和笔(自己动手画一画,这样方能真的理解)1.libuv中如何使用最小二叉堆?libuv将最小二叉堆的算法应用到了timer上,我们看一下timer的使用:uv_timer_t timer_handle;r = uv_timer_init(loop, &timer_handle);// 每10秒钟调用定时器回调一次r = uv...原创 2020-02-07 21:23:10 · 521 阅读 · 0 评论 -
浅谈序列化中的字节序操作
业务处理上,有时会直接对字节进行操作。例如:实现私有协议,对校验位进行检测,敏感数据加密基础概念首先,我们需要理解几个基础概念。一般来说,字节是我们可以用语言处理的最小对象,无论是C/C++还是Java都没有直接提供bit类型。1 byte = 8 bit,除去最左侧的符号位1byte可以描述的范围是:-128 ~ 127。但是在大多数的业务处理中,我们通常会采用无符号位,即用1by...原创 2020-01-19 00:54:29 · 734 阅读 · 0 评论 -
深入了解Nodejs模块机制
我们都知道Nodejs遵循的是CommonJS规范,当我们require('moduleA')时,模块是怎么通过名字或者路径获取到模块的呢?首先要聊一下模块引用、模块定义、模块标识三个概念。1 CommonJS规范1.1 模块引用模块上下文提供require()方法来引入外部模块,看似简单的require函数, 其实内部做了大量工作。示例代码如下://test.js//引入一个模块到当前...原创 2019-12-25 00:59:56 · 573 阅读 · 0 评论 -
用spawn 来编写跨平台 Node.js命令
前言Node.js 是跨平台的,也就是说它能运行在 Windows、OSX 和 Linux 平台上。很多 Node.js 开发者都是在 OSX 上做开发的,然后再将代码部署到 Linux 服务器上。由于 OSX 和 Linux 都是基于 Unix 的,因此两者共性很多。Windows 也是 Node.js 官方支持的平台,只要你通过正确的方式写代码,就能在各个平台上毫无压力的跑起来。Node....原创 2019-12-17 00:12:04 · 1004 阅读 · 0 评论 -
koa-convert 源码解析
npm:https://www.npmjs.com/package/koa-convert我们在迁移一些koa2的服务的时候,或者做一些node-server框架升级的时候,为了兼容koa1中的一些yield写法,不得不将老的yield- generator函数转化为koa2的async/await函数来执行。中间有两个问题,需要解决:如何将generator函数转化为Promise函数;...原创 2019-12-12 00:23:53 · 396 阅读 · 0 评论 -
koa-router-tree 源码解析
npm包:https://www.npmjs.com/package/koa-tree-router1.基数树这次学习的是koa-router-tree中的路由,在学习源码一种我们看到了koa-router-tree的路由是它的特色。然而基础数据使用了基数树也提供了性能的保障。因为路由这部分比较独立而且逻辑相对复杂,所以需要单独学习。首先我们需要了解的是基数树,百度百科中的解释其中有一个图可...原创 2019-12-07 21:54:05 · 607 阅读 · 0 评论 -
Node调试指南-内存篇
主要摘自: - Node.js 调试指南 Node 案发现场揭秘Node.js 发展到今天,已经被越来越广泛地应用到 BFF 前后端分离 、 全栈开发 、 客户端工具 等领域。然而,相对于应用层的蓬勃发展,其 Runtime 对于绝大部分前端出身的开发者来说,处于黑盒的状态,这一点并没有得到很好的改善,从而也阻碍了 Node.js 在业务中的应用和推广。内存泄漏问题对于缓慢上涨最终 OO...原创 2019-02-19 23:43:50 · 2155 阅读 · 0 评论 -
Node.js调试指南
现今 Node.js 愈发受欢迎,应用场景也越来越多,学会高效调试 Node.js 会让日常开发更高效。下面讲下使用inspector调试nodejs程序Node6.3+ 的版本提供了两个用于调试的协议:v8 Debugger Protocol 和 v8 Inspector Protocol 可以使用第三方的 Client/IDE 等监测和介入 Node(v8) 运行过程,进行调试。v8 In...原创 2019-02-19 23:42:21 · 1773 阅读 · 0 评论 -
MongoDB之Mongoose的使用
MongoDB的介绍在说MongoDB数据插入操作之前,我们先来简单了解下它的数据逻辑结构。 mongodb的逻辑结构是一种层次结构,主要由:文档(document)、集合(collection)、数据库(database)这三部分组成的。 文档(document):由键/值对构成,像{a:1};{s:”abc”}等,它是MongoDB核心单元,MongoDB的文档(document),相当于关系原创 2017-07-27 00:20:01 · 556 阅读 · 0 评论 -
新手开发自己的npm包
怎么开发一个npm包一、注册npm账号怎么将代码提到github,大家都知道需要一个github账号同样,开发一个npm包,当然也需要一个npm账号,将npm包发布到npm的托管服务器注册地址:http://npmjs.org该实例包含了模块的局部调用和全局调用两种方式二、开发npm包1.目录构建npm init项目结构:npm包实际是一个存档文件,即一个目录直接打包为.zip或tar原创 2017-07-16 11:03:29 · 3317 阅读 · 0 评论 -
Nodejs学习item 4 -- 文件系统file
Node.js 文件系统Node.js 提供一组类似 UNIX(POSIX)标准的文件操作API。 Node 导入文件系统模块(fs)语法如下所示:var fs = require("fs")1. 异步和同步Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync()。 异步的方法函数原创 2016-05-05 10:34:05 · 842 阅读 · 0 评论 -
Nodejs学习item 1 -- 入门手上
一、 安装首先,去http://nodejs.org 下载安装。我下的版本是0.8.14。安装很简单,下一步下一步就哦了。然后在path中配置一下安装目录即可,msi会把npm(Node Package Manager)一并装上。我的安装目录是C:\Program Files (x86)\nodejs。这时使用cmd命令窗口 node -v ,npm -v命令查看下安装的版本1.1、hellowor原创 2016-05-03 21:21:02 · 5397 阅读 · 0 评论 -
Nodejs学习item 3 -- module模块系统与npm包管理
Node.js模块系统为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。换言之,一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON 或者编译过的C/C++ 扩展。nodejs基于commonjs实现了模块管理系统。node中每一个js文件都是一个独立的模块,在其原创 2016-05-04 13:37:02 · 1344 阅读 · 0 评论 -
Nodejs学习item 2 -- events事件处理EventEmitter
events是node.js 最重要的模块,events模块只提供了一个对象events.EventEmitter,EventEmitter 的核心是事件监听器on与事件发射emit。简介及资料 http://nodejs.org/api/events.html http://www.infoq.com/cn/articles/tyq-nodejs-eventNode.js中大部分的模块,都继承原创 2016-05-03 22:32:00 · 2488 阅读 · 0 评论