随笔分类 -  Node.js

Node.js socket end、finish、close事件与stream
摘要:Node.js Stream Socket finish end close 阅读全文

posted @ 2022-01-27 13:01 留校察看 阅读(2226) 评论(0) 推荐(0)

nodejs mongodb3.6.2 insertOne callback问题
摘要:npm mongodb包版本:3.6.2 mongodb服务版本:4.0.1 想要模拟一下mongodb服务进程挂掉时,起用备用文件日志。 模拟流程:启动应用时,正常连接mongo,开个10s定时器,写入mongo数据,在10s内手动停掉mongo服务。 示例代码:const db = mongod 阅读全文

posted @ 2021-09-14 12:26 留校察看 阅读(166) 评论(0) 推荐(0)

mac cmake编译libuv
摘要:mac版本:macOS High Sierra 10.13.6 准备工作 一、安装cmake 下载dmg文件安装: https://cmake.org/download/ 安装完成后,点开cmake tools -> How to Install For Command Line Use, 在~/. 阅读全文

posted @ 2021-04-02 17:35 留校察看 阅读(1014) 评论(0) 推荐(0)

heapdump占用30M左右内存
摘要:记: 项目中用了heapdump库,发现在调用 heapdump.writeSnapshot('/var/local/' + Date.now() + '.heapsnapshot'); 后,pm2看进程内存会多30M左右,单纯的require不会增加。 nvm使用node v6.9.4, 配套使用 阅读全文

posted @ 2021-03-17 15:06 留校察看 阅读(134) 评论(0) 推荐(0)

egg的生命周期是怎样触发的?
摘要:以前在对egg进行换壳tcp时,看到加载了各种配置,到触发生命周期方法。然而改完过了几个月就忘记了,还是记录一下吧,以免下次忘记的时候翻翻。 egg在load了plugin、config、extend后,最后会有一个loadCustomAgent(loadCustomApp)方法,很关键的一个方法, 阅读全文

posted @ 2021-03-09 14:29 留校察看 阅读(627) 评论(0) 推荐(0)

egg定时任务原理
摘要:在egg定时任务里增加多一种类型, 用在多pod集群下, 定时任务只跑一遍。 虽然我觉得这个功能完全可以放在项目业务自己实现, 不用集成进内部框架, 但还是去看了一下, 正好想了解一下egg的定时任务是怎么做的。 egg-schedule 这是egg用到的定时任务插件, 源码看起来不难, 花了点时间 阅读全文

posted @ 2020-03-10 13:22 留校察看 阅读(1922) 评论(0) 推荐(0)

一种stringify symbol key的方法
摘要:JS里的JSON.stringify方法一般情况下都可以用。 但如果对象里有symbol的key, 会被忽略,如下例子: const s = Symbol('wefwef'); const options = { a: 1, b: [1,2,], [s]: 'wath', where: { [Sym 阅读全文

posted @ 2020-03-05 14:12 留校察看 阅读(291) 评论(0) 推荐(0)

Nodejs源码系列
摘要:一直想着看Nodej源码,断断续续的折腾了一下,但总串不起来,太久不看又忘记。决心每天看一点,特地记录在这里,作为逼迫自己的动力。 2019/09/22 一、源码编译 之前在电脑上了下源码,源码目录截图: 编译通过了,编译命令:make -j4 尝试修改下源码文件:lib/http.js,加入一行打 阅读全文

posted @ 2019-09-22 23:48 留校察看 阅读(1884) 评论(0) 推荐(0)

egg源码浅析一npm init egg --type=simple
摘要:要egg文档最开始的时候,有这样的几条命令: 其中的 npm init egg --type=simple 命令为什么能够生成egg项目的基本构架呢? 一、npm init命令 根据 https://www.npmjs.cn/cli/init/ 官网的解释: npm init <initialize 阅读全文

posted @ 2019-06-12 00:59 留校察看 阅读(2076) 评论(0) 推荐(0)

koa1.x获取原始body内容
摘要:Node版本比较老,koa1.x配合koa-body-parser,默认koa-body-parser会把请求数据转成json对象, 然而有的时候需要获取原始的内容,不要转换,看波koa-body-parser源码,找到办法。 办法一:设置请求头Content-type值为:text/plain 这 阅读全文

posted @ 2018-12-11 00:42 留校察看 阅读(1581) 评论(0) 推荐(0)

nodejs安装zmq出错
摘要:想用zmq来做进程间通信,在Windows下、Centos下安装成功。记录如下: 一、Windows安装zmq 直接 npm install zmq 成功就成功。 不成功的话估计是报"未能加载Visual C++ 组件 “VCBuild.exe"这类的错误,可以这样试试: 1、npm cache c 阅读全文

posted @ 2018-06-22 17:05 留校察看 阅读(1061) 评论(0) 推荐(0)

幂模运算
摘要:求 ab % m 的值,有这几种方法: 一、因为 a % m = r 所以 a = mk + r 同乘b,得a*b = mkb + rb 则 a* b % m = (mkb + rb) % m = r*b % m = (a % m)*b % m = b*(a % m) % m, 即:(a*b) % 阅读全文

posted @ 2018-02-07 14:38 留校察看 阅读(816) 评论(0) 推荐(0)

Nodejs stream模块-翻译
摘要:花了两天时间尝试按照自己的话翻译了一下stream模块,以下内容皆翻译于:https://nodejs.org/api/stream.html. 目录 1 Stream(流) 1.1 这篇文档的组织方式 1.2 stream的种类 1.2.1 对象模式 1.2.2 Buffering 1.3 API 阅读全文

posted @ 2018-02-02 09:40 留校察看 阅读(376) 评论(0) 推荐(0)

Minicap使用分析
摘要:想起前段时间研究过的minicap,抱着无果的心情再次看了源码,这次竟然比上次清晰了一点点,难道是因为这两天被android源码折磨得身心疲惫然而却在不知不觉中增长了?不懂怎么样,看懂了大概。 Minicap在客户端连接的时候,会向客户端发送一个24字节的banner,具体格式: banner版本、 阅读全文

posted @ 2018-01-19 15:36 留校察看 阅读(1950) 评论(0) 推荐(0)

async-lock模块理解
摘要:在Appium1.7.1里集成了一个同步模块async-lock用来支持多会话功能。 只能说就算是以单线程高并发闻名的I/O密集型Nodejs也不得不扩展额外的同步块方法,或者说,在现有的计算机体系结构和配备的操作系统之下,所有的编程语言都无法摒弃同步信息块。 不过想想也是,这个世界原本是处于无序的 阅读全文

posted @ 2017-11-01 14:28 留校察看 阅读(3928) 评论(0) 推荐(0)

nodejs压缩
摘要:在express中要用到压缩,把某一个文件夹压缩成zip,再返回到客户端提供下载. 用archiver库 这样就很方便的把某一个目录直接打包成zip,而且不会阻塞客户端的操作 但是,有问题: 在我电脑上试的时候,如果文件夹有10G大小,那么下载下来的zip档打不开。这是个问题,提交给这个库的开发者. 阅读全文

posted @ 2017-07-31 16:49 留校察看 阅读(342) 评论(0) 推荐(0)

Express文件上传
摘要:最近写一个接口,接收传过来的文件,折腾一番,终于完成了,记录一下. 要装一个库:multiparty 下面是部分代码片段,如何创建express的省略: var multiparty = require('multiparty'); var crypto = require('crypto'); r 阅读全文

posted @ 2017-07-31 16:33 留校察看 阅读(202) 评论(0) 推荐(0)

Appium修改源码后重新编译
摘要:按照官方的说明下载源码,安装依赖库,具体可从这来: https://github.com/appium/appium/blob/master/docs/en/contributing-to-appium/appium-from-source.md 基本上只要三条命令就可以了: 这样就可以起起来app 阅读全文

posted @ 2017-04-12 17:12 留校察看 阅读(1882) 评论(0) 推荐(0)

Nodejs文件监控chokidar
摘要:最近有个需求是扫描用例,用例是放在svn上,如果每次扫描都去遍历目录的话会有占用太多的io,所以想着用文件监控,有文件变化时只对该文件进行操作。 Nodejs里的 chokidar 模块可以更好的对文件进行监控,不会产生多次的事件。 直接导出成一个公用方法: 阅读全文

posted @ 2017-03-17 12:02 留校察看 阅读(9469) 评论(1) 推荐(1)

bluebird -1 New Promise方法
摘要:new Promise new Promise(function(function resolve, function reject) resolver) -> Promise 创建一个Promise,传一个函数参数 resolve和reject,两个函数用来决定返回值或者报出异常 例子1: 例子2 阅读全文

posted @ 2017-01-11 10:10 留校察看 阅读(979) 评论(0) 推荐(0)

导航