雷学委之NodeJS爱好系列
文章平均质量分 89
前端同学其实不必学Java也能学懂后端。 学委主攻方向在AI+大数据,所以这个专栏不定期加更~
NodeJS前后端开发大全,以及多年的开发小经验分享!
前后结合的系列,对全栈能力提升很有帮助,也有很多大局架构方面的补充知识!
雷学委
高级技术专家带路,事半功倍!多语言爱好者,目前主业大数据。做过创业项目/技术演讲/系统架构/内部培训。过来学习技术吧!
其他:
上海DevOpsDays技术讲师,发表主题演讲
华为云圆桌特邀嘉宾
展开
-
对方服务下线我推荐ProxyServer继续开发!
对方服务下线我推荐ProxyServer继续开发!背景搞开发的同学经常会碰到一个问题,对方的接口还没有准备好,篇幅有限,当然这本质上还是异步执行的,希望读者自行鞭策,思考理解。想学NodeJS的读者可以关注我的=> NodeJS专栏,这对提高编程素养很有帮助,希望点赞转发,一键三连!...原创 2021-08-05 09:03:48 · 578 阅读 · 49 评论 -
机器人恶意刷接口?加个验证码几分钟搞定!
NodeJS 后端开发10 生成图片验证码并实现校验很多时间我们会在登录或者比如一些抽奖报名页面放一个验证码。然后在后台进行校验。通过放置图片验证码,这样可以防止机器人暴力扫描重试系统接口。当然也有些网站验证码设计的像是防止正常用户使用似的(像之前某车票网站一样。。。)我们直接来看效果如上图,登录表单提交一个用户名字和验证码。后台获取输入验证码,并进行校验。如果校验失败需要用户点击图片生成新验证码图片,然后继续提交表单校验。输入错误图片验证码如下图,这个例子就禁止用户继续登录,打印提示信原创 2021-07-31 21:37:19 · 2238 阅读 · 60 评论 -
搞不定Serverless?让你秒懂掌握Profiling让一份程序优雅自适应
学委好久没有更新NodeJS专栏,还以为NodeJS冷门,没想到最近看到几个读者留言问怎么优雅的管理多环境的配置。太忙了,写篇短文简单展示一下原理。正好基于前篇 【NodeJS 后端开发 07 MySQL数据库连接池开发生产应用 】简单尝试了mysql库来连接数据库。本篇尝试一个更加优雅的方式,通过环境变量来控制程序动态加载不同的配置。这个搞Java的同学最清楚,比如我们开发springboot应用的时候会放置多个application.yml。然后部署的时候通过环境变量来选择配置。这个用Node原创 2021-07-30 23:51:17 · 2349 阅读 · 44 评论 -
极简权限认证必须掌握【代码+原理+建议收藏】
小白最近没有来问学委问题,不过前几天,有朋友问到如何进行访问控制,资源控制的,学委特地写了一篇。这其实就是权限认证,理解并掌握其核心思想很重要,而且每个系统都避不开!下面一起看吧。通常情况下,我们访问所有API都需要进行用户访问权限鉴定。比如判断当前访问的用户是什么人,什么角色。下面基于商业办公楼安保系统来陈述。今天去上班但是忘记带员工卡了做为一个上班族,你去一个大型办公楼某一层楼办公/上班,想要进入不同楼层,商场物业会进行鉴定。然后进入电梯打开按某一楼层。然后进入办公室之前还需要打开,这个滴原创 2021-07-18 23:33:22 · 1340 阅读 · 62 评论 -
NodeJS 后端开发 08 使用log4js打日志
NodeJS 后端开发 08 使用log4js打日志日志是什么?像记日记一样,日志是通过程序打印出来的,记录程序内部何时何处发生了什么事件。本文只为使用学习为主,想对日志管理和分析有更深认识的可以看 => 日志原理与开发分析这篇完全指南就够了!适应各种规模我们也用过console.log来打印一些调试信息,有什么区别呢?请读者带着这个问题往下读。先安装我们这里先安装一个日志的模快。打开终端执行下面命令:npm install log4js基本使用const log4js = re原创 2021-06-14 23:45:01 · 2814 阅读 · 69 评论 -
依赖服务故障怎么办?几百万的项目明天要路演Demo了
对方服务突然故障,明天就要Demo了怎么办?其实这个问题跟:对方服务下线,手上的开发还没有做完,怎么继续进行是一样的!背景搞开发的同学经常会碰到一个问题,对方的接口还没有准备好,老板就再催甚至压第二个项目了!或者是,对方的网站挂,手上的项目还得进行怎么办?这个问题不管是前端,还是后端,只要你的系统有其他系统依赖(通常非本应用进程的其他进程调用,前端跨域调用等都可以当作此类调用事件)思路向修改自己的代码就是在自己的代码添加toggle,开发调试的时候把它打开!可是这个会让代码看起来很凌乱!原创 2021-06-09 22:40:17 · 1556 阅读 · 210 评论 -
从浅到深使用pm2来彻底掌握微服务运维精髓
喝茶去,让pm2来管理你的微服务前面博主写了一篇如何摆姿势启动进程的收到好多阅读。里面介绍了,pm2这个js库,这个库除了对简单应用进程管理,但是它还有很多功能,让我们一起看看!Mini微服务平台本文就使用这个pm2这个库来创建一个前后的分离的迷你微服务平台(如下图)!上面有两个微服务:Levin UI App 为渲染静态UI的web服务Backend App为后端接口处理的web服务,但是有两个worker子进程。这里采用的代码可以从博主另一篇文章 获取 NodeJS实现的简单的商品管理原创 2021-06-04 21:36:11 · 7254 阅读 · 328 评论 -
这个极简前后端分离应用不能错过
你必须掌握的极简前后端分离应用这是一个极简的代码展示,使用koa web服务渲染网站静态页面。读者可自行准备package.json, 本文使用以下版本:"koa": "^2.13.1","koa-router": "^10.0.0","koa-static": "^5.0.0"直接懒人复制 package.json{ "name": "uiapp", "version": "1.0.0", "description": "uiapp by levin", "main":原创 2021-06-02 01:13:56 · 3100 阅读 · 195 评论 -
这些后台启动姿势错过可亏大了
第一种 nohup 启动脚本 &这种启动是非常常见的,像Java, Python程序也都是打包好,写一个脚本里面启动的 。所以这个有必要掌握。这个启动的关键是最后面的&符号,它告诉操作系统把这个程序的进程后台挂起。前面的nohup就会把启动stdout日志输出到nohup.out文件内。第二种方式,pm2的方式启动,这种是nodejs挺常见的。主要是把程序委托给pm2(nodejs版的进程管理工具)管理。这样有什么好处?所有用是pm2启动的进程,可以通过pm2 list命令查看原创 2021-05-29 23:49:49 · 9891 阅读 · 147 评论 -
Promise你把握不住?来看看异步转同步改造
Promise你把握得住?来看看异步转同步改造前言先说一下上一篇NodeJS文章NodeJS 后端开发 06 连接MySQL,这一篇展示了一个数据库链接的db.js 工具库。该工具库提供了一个runSql函数,它的运行方式是先提交SQL,然后再异步把查询结果回调传递给callback函数的。这个函数只适用于提前加载数据的情况,比如预先缓存批量的查库结果。然后用户请求WebAPI的时候,直接读查询缓存。这样会有下面的问题:新数据入库了,本地缓存需要更新。而且无法支持动态查询。说这么多原创 2021-05-27 09:46:27 · 1403 阅读 · 48 评论 -
NodeJS 后端开发 07 MySQL数据库连接池开发生产应用
前篇 【NodeJS 后端开发 06 连接MySQL】简单尝试了mysql js库来连接数据库。该文章分享的js代码不适用于生成环境使用。在生产环境中,后端服务对数据库连接的管理都是通过一个 数据库连接池。在接口需要获取数据库数据的时候,从池中取一个活跃连接,到数据库取完数据/执行数据变更操作后,释放连接并放回连接池。上图所示,当业务线程处理数据时,使用连接;右边为业务处理结束,释放连接,放回连接池中。这里分享一个连接池的JS代码const mysql=require("...原创 2021-03-31 01:09:46 · 436 阅读 · 0 评论 -
NodeJS 后端开发 06 连接MySQL
好久没分享了,今天分享一个NodeJS连接MySQL数据库的工具库:dbpool.js首先,我们启动MySQL服务器:(下图为MacBook 单机版MySQL Server)CREATE SCHEMA `demo20210330` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;USE SCHEMA `demo20210330` ;CREATE TABLE `COMPANY` ( `ID` int(11) NOT NUL原创 2021-03-30 09:43:11 · 463 阅读 · 0 评论 -
碰到Cannot find module了吗? 来看看require函数与NodeJS模块加载
在NodeJS项目开发过程中,我们经常使用公共JS库。比较常用的做法就是通过npm去install目标js库,然后这个库会被放在node_modules目录下。接着,我们自己写的JS文件中,使用require("目标js")库来使用他人共享的代码,这样很容易事半功倍。这里我们谈谈require这个函数?首先,我们打开node REPL(打开terminal终端/Command,输入: node //打开Node REPL)requirethis.require === require原创 2021-03-21 22:46:49 · 8961 阅读 · 20 评论 -
NodeJs 后端开发 04 使用axios调用第三方服务API
目录当我们需要访问其他服务的接口有什么JS库可以使用呢?先看文档,直接打开Axios Github编写Axios HelloWorld创建一个新的NodeJS项目,引入axios包:发送请求前需要启动商品服务发送一个GET请求发送一个POST请求,模拟添加商品数据在我们开发后端服务的过程中,我们除了开发当前服务的数据接口之外,避免不了需要调用外部服务接口(一个或者多个服务的API)前篇我写了一个基于Restify实现的CRUD的商品管理服务:https://blog.cs原创 2021-03-05 01:01:38 · 2860 阅读 · 7 评论 -
RESTful API系列 - RESTful API是什么以及其设计要点
很多时候不小心写错了,我们会看到Restful API,碰到这样写法,严格说是错误的。REST中文意思是REpresentational(代表性的)State(状态)Transfer(传输),比较拗口,这个概念是Roy fielding提出的一种应用在分布式系统的架构风格。简单理解,RESTful API就是尽量满足以下六个设计原则来进行实现的接口,它们是:数据跟界面解耦 无状态 可缓存 统一接口/标准化接口 分层次系统风格 按需编码(可选)这么多个原则,换个简化的说法,即是,更清晰原创 2021-02-21 17:37:14 · 487 阅读 · 8 评论 -
NodeJS 后端开发 03 使用Restify开发API 一个完整的CRUD
这篇是继续api开发https://blog.csdn.net/geeklevin/article/details/109013368的进一步补充。简单说明CRUD 就是我们常说的创建Create,读取Read,更新Update,删除Delete。这几个操作是后端开发中最常见的几个,举个例子,比如说一个商品销售的网站。它涉及的商品添加上架,提供商品给用户浏览,以及后续商品属性更新,下架到最终撤走,都是围绕一个商品进行CRUD的操作。当然实际操作会更复杂。从简入手前篇写了一个更加参..原创 2021-02-26 00:51:13 · 1043 阅读 · 7 评论 -
NodeJS 后端开发 02 开发第一个RESTful API
RESTful API 是什么谈谈REST-fulREST中文意思是REpresentational(代表性的)State(状态)Transfer(传输),比较拗口,这个概念是Roy fielding提出的一种应用在分布式系统的架构风格。简单理解,RESTful API就是尽量满足以下六个设计原则来进行实现的接口,它们是:数据跟节目解耦 无状态 可缓存 统一接口/标准化接口 分层次系统风格 按需编码(可选)这么多个原则,换个简化的说法,即是,更多细节参考:https://rest原创 2020-10-31 15:07:08 · 879 阅读 · 1 评论 -
NodeJS 后端开发 01 创建项目与运行helloworld
下载与安装https://nodejs.org/zh-cn/download/版本一般最新,选择对应操作系统,推荐使用zip或者tar.gz方式,然后设置到环境变量path的方式。通过手动设置这种方式,可以让你会更熟悉node/npm配置。以后玩vue cli或者angular,react-script都很有帮助安装成功可以通过下面命令查看:Macbook上对安装进行验证创建一个新项目打开命令终端输入:npm init,具体如下,这里会产生一系列提示。这里提示很多输入...原创 2020-10-11 01:34:16 · 1931 阅读 · 4 评论