
nodejs
文章平均质量分 62
ruanhongbiao
最想要去的地方,怎能半途返航。
展开
-
node.js中mysql批量插入更新的三种方法
【背景】在项目中遇到一个批量插入数据的需求,由于之前写过的sql语句都是插入一个对象一条数据,于是去网上搜关键词 "sql批量插入"、"mysql批量插入"等,搜到的答案不外乎这三种:1.逐条执行,在for循环里写insert插入语句 这种方法显然性能还差,不符合常理,遂淘汰。2.批量执行INSERT INTO table ( "clo1", "col2", "col3", "col4", "col5" )VALUES( 1, 10, NULL, '2019-12-19 13:38:.转载 2021-08-09 11:51:15 · 6645 阅读 · 0 评论 -
记一次企业开发中使用nvm切换node版本npm不能用的问题
刚开始安装nvm的时候,安装完之后使用nvm -v查看版本,提示nvm不是内外部命令报错,后面在网上也查了一些资料,说是环境变量配置的原因等,正常来说安装时环境变量会自动添加的,除非是出现特殊情况没有添加环境变量或者路径错了之类,最后我想了一下会不会是没有重启电脑导致的呢?果然重启后再运行nvm -v显示版本号了,nvm安装成功。nvm安装成功的示例图如下:现在来重点说一下nvm切换node版本npm不能用的问题,我从高版本nodejs切换到低版本的时候,使用node -v查看node的版本是.原创 2021-04-19 18:45:36 · 3330 阅读 · 0 评论 -
Nodejs进阶:服务端字符编解码&乱码处理
写在前面在web服务端开发中,字符的编解码几乎每天都要打交道。编解码一旦处理不当,就会出现令人头疼的乱码问题。不少从事node服务端开发的同学,由于对字符编码码相关知识了解不足,遇到问题时,经常会一筹莫展,花大量的时间在排查、解决问题。文本先对字符编解码的基础知识进行简单介绍,然后举例说明如何在node中进行编解码,最后是服务端的代码案例。本文相关代码示例可在这里找到。关于字符编解码在网络通信的过程中,传输的都是二进制的比特位,不管发送的内容是文本还是图片,采用的语言是中文还是英文。转载 2020-06-16 09:23:04 · 1399 阅读 · 0 评论 -
深入基础(四)Buffer,转码
Buffer 前面提及到一些关于buffer类的问题,当时不是很明确 那么就次机会顺便深入探讨一下这个东西到底干嘛的出现在什么时候,如何使用.昨天跟朋友聊天他说我每一篇博文内容太长太长了 虽然很精细,但是的确深入的有点多了,so 这篇开始尽量多分几篇共同讨论,减少单一文章内容过多的问题哈.想起个事儿来这,这两篇博文其实都是在深挖原生模块fs,原生如果操作文件的,细心的孩砸都会发现的,对于fs模块学习还有两章,我准备这两张完事儿之后开始学习http模块 目前项目中有用到部分http模块的功能,好...转载 2020-06-16 09:18:57 · 1206 阅读 · 0 评论 -
Node.js 事件循环工作流程 & 生命周期 -- Void Canvas
一年前在描述 setImmediate & process.nextTick的区别时,我写了一些关于具体的 node 的事件循环的架构。出乎我的意料,读过那篇文章的读者对于事件循环的这一部分变得更加有兴趣,我收到了很多反馈,也有很多读者在站内搜索相应的关键词,这就是我为什么决定回来写 nodejs 的事件循环的工作流程。我建议你阅读整篇文章,而不仅仅是看看每个段落中的标题。...转载 2020-04-26 16:47:51 · 601 阅读 · 0 评论 -
深入理解Node.js 进程与线程(8000长文彻底搞懂)
前言进程与 线程是一个程序员的必知概念,面试经常被问及,但是一些文章内容只是讲讲理论知识,可能一些小伙伴并没有真的理解,在实际开发中应用也比较少。本篇文章除了介绍概念,通过Node.js 的角度讲解 进程与 线程,并且讲解一些在项目中的实战的应用,让你不仅能迎战面试官还可以在实战中完美应用。文章导览面试会问Node.js是单线程吗?Node.js 做耗时的计算时候...转载 2020-04-26 16:12:29 · 446 阅读 · 0 评论 -
nodeJS入门指 — Buffer对象详解
JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。一个 Buffer 类似于一个整数数组,但它对应于 V8 堆内存之外的一块原始内存。Buffer对象占用的内存空间是不计算在Node.js进程内存空间限制上的,因此,我们也常常会使用Buffer来存储需要占用大量内存的数据:构建函数var buf =...原创 2019-12-02 17:34:37 · 624 阅读 · 0 评论 -
Nodejs发送https Post请求时出现socket hang up错误的解决办法汇总
参考nodejs官网发送http post请求的方法,实现了一个模拟post提交的功能。实际使用时报socket hang up错误。方法一:后来发现是请求头设置的问题,发送选项中需要加上headers字段信息(这个估计也和对方的服务器有关,对于不完成的post请求头,可能被丢弃了)。完整的代码如下(遇到类型问题的同学可以做个参考):var querystring = require...原创 2019-09-18 18:19:53 · 45002 阅读 · 0 评论 -
node请求java接口的api地址报错error:getaddrinfo ENOTFOUND
1、问题node服务器用如下代码请求java接口,项目中本地hostname是localhost所以不会报错,但是部署到正式环境后报错error:getaddrinfo ENOTFOUND www.xxxx.com www.xxxx.com:8080var opt = {//请求属性 hostname: 'http://www.xxxx.com', po...原创 2019-08-21 19:52:00 · 37716 阅读 · 0 评论 -
nodejs 前端项目编译时内存溢出问题的原因及解决方案
现象描述昨天用webpack打包Vue的项目时,node内存溢出而停止build项目,即是项目构建过程中频繁报内存溢出:FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory。并且打包速度相当慢,估计项目过大了。解决方案一:通过package.json中的"build"加大内存/*...原创 2019-08-16 17:18:40 · 3554 阅读 · 0 评论 -
nodejs的DNS模块浅析
node.js的DNS模块包含两类函数:一、 第一类函数,使用底层操作系统工具进行域名解析,且无需进行网络通信。 这类函数只有一个:dns.lookup()。eg:const dns = require('dns');dns.lookup('iana.org', (err, address, family) => { console.log('IP 地址: %j 地址族...原创 2019-08-16 10:06:57 · 690 阅读 · 0 评论 -
Node 学习笔记:express 默认日志组件 morgan 从入门使用到源码剖析
morgan是express默认的日志中间件,也可以脱离express,作为node.js的日志组件单独使用。本文由浅入深,内容主要包括:morgan使用入门例子 如何将日志保存到本地文件 核心API使用说明及例子 进阶使用:1、日志分割 2、将日志写入数据库 源码剖析:morgan的日志格式以及预编译入门例子首先,初始化项目。npm install express mo...转载 2019-08-20 20:37:08 · 778 阅读 · 0 评论 -
npm安装依赖包报ERR问题汇总及处理
本文记录在使用npm安装依赖包过程中踩过的坑。一般来说,npm安装失败时需要注意下面几点:是否能够访问安装源:检查代理和当前安装源 当前的node版本是否兼容已有模块node_modules 输入的依赖包名称是否正确npm ERR! code ECONNRESET在使用npm安装node的模块的时候,经常会出现下面的一些错误:npm ERR! network tunneling ...原创 2019-07-23 16:00:19 · 51275 阅读 · 0 评论 -
nodejs环境变量配置及使用n及nvm进行版本切换
nodejs的下载去官网根据自己的系统选择相应的版本就好,很简单,这里不再详细讲解,附官网地址:https://nodejs.org/en/download/!本文主要讲解nodejs的环境变量配置和版本切换。一:环境变量配置:说明:这里的环境配置主要配置的是npm安装的全局模块所在的路径,以及缓存cache的路径,之所以要配置,是因为以后在执行类似:npm install expre...原创 2019-08-02 17:01:45 · 5005 阅读 · 0 评论 -
Node.js在MySQL中存储数据 & 创建连接池
1.首先安装mysql客户端开发包npm install mysql然后引用mysql模块var mysql = require('mysql');2.建立连接&关闭连接(1)createConnection方法创建连接对象(正式的说法是 使用createConnection方法创建一个表示与mysql数据库服务器之间连接的connection对象)...原创 2019-08-01 17:49:22 · 823 阅读 · 0 评论 -
node PM2 常用命令
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...原创 2019-08-08 16:20:25 · 557 阅读 · 0 评论 -
nodejs中实现sleep功能,暂停几秒
一 背景在使用nodejs爬虫的时候,经常会遇到别人的网站对频率的反爬机制,这个时候如果不做处理程序就会挂掉,重新启动也会继续被屏蔽.这个问题怎么解决呢,我的想法就是程序暂停10分钟或者更长的时间,继续爬取.二 方法其实使用setTimeout就可以实现,只是nodejs异步已经很金字塔了,再加一层会更恐怖,所以本文使用nodejs的第三方模块async来实现,async的目的就是让多...原创 2019-08-08 19:41:34 · 5082 阅读 · 0 评论 -
nodejs模块 node-schedule使用,定时任务
一. 安装npm installnode-schedule二. 使用例子通过定时访问url展示首先引入2个模块和访问的方法:var http = require('http');var schedule = require("node-schedule");function httpGet(){ var uri = `http://120.25.169...原创 2019-08-09 09:54:46 · 724 阅读 · 0 评论 -
npm安装更新package.json中的模块依赖
npm一键安装package.json里的依赖时有2种情况:1.package.json不存在时 运行命令: npm init可自动创建package.json文件2.package.json存在时 运行命令:npm install 或者 npm install –save-dev会自动将package.json中的模块安装到node-modules文件夹下。...原创 2019-08-14 10:44:12 · 3535 阅读 · 0 评论 -
玩转Nodejs的集群
在Nodejs中使用集群还是不容易的。Javascript的单线程属性让nodejs下的应用很难使用现代机器的多核特性。比如下面的代码实现了一个http服务器的主干部分。这部分代码只会执行在一个线程上,不管这段代码运行的机器是单核的cpu还是1000个内核的cpu。var http = require("http");var port = parseInt(process.argv[2])...转载 2019-08-14 11:31:55 · 1162 阅读 · 0 评论 -
package-lock.json的作用及与package.json的区别
其实用一句话来概括很简单,就是锁定安装时的包的版本号,并且需要上传到git,以保证其他人在npm install时大家的依赖能保证一致。引用知乎@周载南的回答根据官方文档,这个package-lock.json 是在 `npm install`时候生成一份文件,用以记录当前状态下实际安装的各个npm package的具体来源和版本号。它有什么用呢?因为npm是一个用于管理pac...原创 2019-08-15 11:04:12 · 226 阅读 · 0 评论 -
使用 PM2 管理nodejs进程
pm2 是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的。它非常适合IaaS结构,但不要把它用于PaaS方案(随后将开发Paas的解决方案).和使用node index.js方式比较,优点:1 一个命令窗口就可管理多个node服务器进程。而node命令多个进程就需要开多个窗口。...原创 2019-07-09 18:21:39 · 386 阅读 · 0 评论