JavaScript
文章平均质量分 95
任庆
坚持做正确的事
展开
-
从Java程序员的角度解释Nodejs的事件驱动
前言nodejs断断续续使用了一年多的时间,主要用来写一些网关、路由之类的服务,之所以选择nodejs还是因为它天生的 “事件驱动,非阻塞IO”的特点。期间多次翻阅资料,试图了解它的 “非阻塞” ,但是每次百度出来的基本都千篇一律:贴了一张libuv的图,然后配上几行说明。基于本人是Java出身,本身水平有限,对复制来的东西看的云里雾里的,很希望有一篇文章能系统地说明一下,很遗憾一直没找到。但是在不停的查阅资料的过程中,也有所得,感觉距离真相越来越近,因此,尝试站在java程序员的角度解释一下nodej原创 2021-06-12 11:42:28 · 1463 阅读 · 4 评论 -
【译】Nodejs Stream你需要知道的一切
Nodejs的流以难以使用,甚至更难理解而著称。好吧,我有个好消息要告诉你——不再是这样了。过去几年里,开发者实现了许多工具包来简化流操作。但是在这篇文章中,我将着重介绍Nodejs原生的 stream API。流到底是什么?流是数据的集合,就像字符串型数组中的单个字符串一样。不同的是,流可能不会一下子要用到它的所有内容,并且不需要把数据存储到内存中。这使得流在处理大量数据,以及从外部...翻译 2019-11-20 16:20:45 · 504 阅读 · 0 评论 -
Nodejs文件覆盖、追加、读取、全量复制(同步版本)
如需要异步版本,则参考:https://blog.csdn.net/nickDaDa/article/details/102371073逻辑类中包含了,文件的:更新覆盖;内容追加;读取;全部复制。相关注意事项参考:https://blog.csdn.net/nickDaDa/article/details/102371073逻辑处理类的实现:syncdata.jsconst f...原创 2019-10-08 12:31:09 · 2936 阅读 · 0 评论 -
Nodejs文件覆盖、追加、读取、全量复制(异步版本)
逻辑类中包含了,文件的:更新覆盖;内容追加;读取;全部复制。所有方法都是异步的,如果需要同步则需要修改fs的方法,并使用Promise进行包装,另外需要注意,全部复制的方法需要传入两个目录,不带文件的path,并且是有最大文件打开数量限制的,如果是大文件但文件数量较少则适合使用,如果是小文件且数量大,则不适合,建议进行先打成压缩包,再进行传输。如果需要同步版本,可以参考:https://b...原创 2019-10-08 11:11:12 · 3236 阅读 · 0 评论 -
Nodejs实现Kafka日志发送
创建常量类:cons.js{ "common_logger":{ "description":"common logger config", "switch":true, "addr":"svc-kafka:9092", "facility":"Nick Test Process", "topic":"LOG...原创 2019-09-26 12:09:44 · 1558 阅读 · 0 评论 -
Nodejs Promise方式操作Postgresql
使用连接池,保证连接获取速度;使用promise方式,保证代码执行时序;安装pg包npm install pg --save创建文件:pgClient.jsconst pg = require('pg');/** * pgPool instance */var pgPool = null;/** * pgClient Entity */class pg...原创 2019-09-26 11:46:46 · 775 阅读 · 0 评论 -
初识 nodejs
nodejs在2010年就活跃于各大网站,但是我在2015年才开始知道这个东西,因为当时公司是做媒体的,需要不停的采集一些数据同步到mongoDb中,就使用了nodejs写服务,但当时那还是别的大神写的代码,像我等小菜鸡根本无法企及。那时才知道原来javascript还能做服务。之前的认识就停留在HTML中的脚本语言,比如,动态处理一些Dom元素,添加属性、修改样式、元素间组织等,...原创 2019-04-15 14:47:23 · 216 阅读 · 0 评论 -
nodejs request模块请求一个无效网址,但返回正确的问题
最近做一个服务转发功能,但是对端服务可能没有开启或已经宕机,因此在转发前需要判断此次转发的服务是否是有效的(或者转发后能分辨此次响应是否正常),如果是不存在的服务下次转发需要屏蔽掉。封装了一个request方法:const request = require('request');async function GetResponse(url) { return new Pro...原创 2019-04-10 09:24:08 · 1520 阅读 · 0 评论 -
js for in / for of 区别
相同:都可以用来遍历数组不同:for of 是ES6开始有的,用来遍历值的,而 for in是用来遍历索引的,并且返回的索引是字符串型数字。例:let arr = ['A','B','C'];for (let i in arr){ console.log(`i的值为:${i}, i的类型为:${typeof i}`);}for (let o of arr){ conso...原创 2019-04-12 10:57:20 · 184 阅读 · 0 评论 -
PM2 常用命令/使用自定义执行器启动
$ pm2 start app.js # 启动app.js应用程序$ pm2 start app.js -i 4 # cluster mode 模式启动4个app.js的应用实例# 4个应用程序会自动进行负载均衡$ pm2 start app.js --name="api" # 启动应用程序并命名为 "api"$ pm2 start app.js --watch # 当文件变...原创 2019-02-02 10:39:31 · 1698 阅读 · 0 评论 -
CentOS/Ubuntu 安装Nodejs并升级到最新版,安装pm2
需要网络Ubuntu:sudo apt-get updatesudo apt-get install nodejssudo apt install nodejs-legacysudo apt install npmsudo npm install n -gsudo n stableCentOS:sudo yum updatesudo yum install...原创 2019-02-02 11:37:30 · 566 阅读 · 0 评论 -
js Promise/async/await
结论:Promise 是用来解决函数回调嵌套的, async、await 是用来解决逻辑上的函数依赖的。相关概念:Promise是一个有状态的对象,用来规范回调函数,内容是一个function(function Promise() { [native code] }),内部接收一个function,参数为resolve,reject,用于处理耗时操作的等待。let prom...原创 2019-02-01 10:39:06 · 988 阅读 · 0 评论