缘起: 产品业务上有个类数据库服务的请求时间比较长(类似mysql的sql查询),为了优化减少并发时的请求数,做了一个并发时共用请求的优化. 通过单元测试后,想通过手动模拟看下效果,发现优化一直不能生效. 定位问题: 1.在mac下,同时开了两个chrome窗口,分别促发访问同一个接口(请求入口打印input,中间设定几秒的延时,出口打印output). async test(ctx) { console.log('input'); await bluebird.delay(10000); co…
错误来源:Centos 7 上使用nginx为Node.js配置反向代理时产生(13: Permission denied) while connecting to upstream的错误 nginx配置文件内容如下: upstream node_server { server 127.0.0.1:5000 max_fails=3 fail_timeout=4s; server 127.0.0.1:5001 max_fails=3 fail_timeout=4s; } server { list…
一直忙着写毕设,上一次写博客还是元旦,大半年过去了.... 后面会不断分享各种新项目的源码与技术.欢迎关注一起学习哈! 记录一次部署微信小程序Node.js后端接口代码的详细过程,使用宝塔来部署. 我们先来看一张图片 这是采用前后端分离的开发模式来开发微信小程序,跟云开发有区别.云开发没有"后端应用"这一块.我们这篇文章就是讲解怎么部署"后端应用"这一块的接口代码. @ 目录 材料准备 买轻量应用服务器(不能乱买) 备案域名 部署过程 登录宝塔管理界面 安装PM2…
用简单的 Node.js 后台程序浅析 HTTP 请求与响应 本文写于 2020 年 1 月 18 日 我们来看两种方式发送 HTTP 请求,一种呢,是命令行的 curl 命令:一种呢是直接在浏览器的地址栏输入地址. 那你会发请求吗? 我们哪里会发请求嘛,我们不会,所以我们需要 "用户代理" 来帮助我们,即User Agent. 那发完了如何响应呢? 假设,我们有一个服务器,然后我们写了一段 Node.js 的服务器代码,并在服务器的某个端口上开始运行. 那么这个时候,我们只要访问一次…
1.需求背景 在一些写接口的场景下,由于一些网络因素导致用户的表单重复提交,就会在相邻很短的时间内,发出多个数据一样的请求.后台接口的幂等性保证一般都是先检查数据的状态,然后决定是否进行执行写入操作,最后更新状态.那么在这个很短的时间内,数据可能还没来及写入,多个请求同时进入了状态判断的逻辑,此时就可能绕过检查,执行多次重复的写入. 在此给出的解决方案是,使用redis分布式锁,控制用户的请求串行处理:客户端的请求进入时,基于用户的维度进行抢锁,抢到了就可以往下执行逻辑,抢不到锁的请求直接被拒绝…
1.net模块基本API 要使用Node.js的net模块实现一个命令行聊天室,就必须先了解NET模块的API使用.NET模块API分为两大类:Server和Socket类.工厂方法. Server类如下图所示: net.Server类可以用来创建一个TCP或本地服务器,继承了EventEmitter. Socket类如下: net.Socket类一般用创建一个socket客户端或者是net.Server connection事件的参数. 工厂方法如下: 以上三个图展示了API的使用,其实NET…
Node.js代码 var express = require('express'); var app = express(); var http = require('http'); var server = http.createServer(app); app.set('trust proxy', true);// 设置以后,req.ips是ip数组:如果未经过代理,则为[]. 若不设置,则req.ips恒为[] app.get('/', function(req, res){ conso…
BundleTable.这个确实是比较好用,打包并压缩了CSS,使之加载时减少流量. 但是在调试的时候会疑问为何有很多JS,CSS文件无法打包,其实是因为调试时VS自动过滤了如下文件:   后台跟踪了一下,发现过滤了后缀名为 .intellisense.js.-vsdoc.js..debug.js..min.js..min.css的文件   主要就是因为新手不知道,为何我加的一些文件不能打包进去,非常的纳闷并且不断的进行测试.…
前台界面: 前台代码: <form class="form-horizontal" method="post" action="http:127.0.0.1:3000/post"> <div class="form-group"> <label for="inputEmail3" class="col-sm-2 control-label">姓名<…
断更很久了........从今天开始会努力的持续更博,积极学习. 言归正传.今天在写node.js的demo时发现一个bug.我在node中读取本地的text文件时,发现英文的内容可以被读取,但是中文的就显示的是乱码.如下图 产生这种问题的原因是: Windows下默认的编码格式是ASNI,其实这并不是真正的编码格式.但Node.JS默认的编码,解码则是目前通用的UTF-8.因此在读取Windows默认的TXT文件时会显示乱码.当然,这个问题在linux系统上就不会有这个问题. 解决方案有两个…