
node
一树梨花
这个作者很懒,什么都没留下…
展开
-
JWT认证授权原理和简单实现
1. 关于JWT:(1). JWT(json web token)是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准(2). JWT的声明一般被用于在身份提供者和服务提供者之间传递被认证的用户身份信息,以便于从资源服务器获取资源。最为常见的场景就是用户登录认证(3). 因为数字签名的存在,这些信息是可信的,JWT可以使用HMAC算法或者是RSA的公私密钥对进行签名2. 主要的应用场景:(1). 身份认证在这种场景下,一旦用户完成了登录,在接下来的每个请求中包含JWT, 可以用来验证用原创 2020-09-22 17:46:57 · 2509 阅读 · 0 评论 -
深入了解Express: 挑战手写Express(3),处理模板引擎
之前我们完善了Express的路由系统,以及中间件的支持,这也算是完成了Express中比较核心的部分,今天完成模板引擎的渲染后就不往后面继续了,因为后面的很多东西也不是太麻烦,大家可以自己去研究研究源码进入今天的正题,Express模板引擎渲染: 通俗的说,其实有点类似于SSR吧(个人觉得),当然肯定还是有区别的,我们先抛开不管,服务端模板引擎渲染其实就是将数据整合进入到前端html页面,将模板引擎中使用到的js语法,需要的服务端 变量进行替换成真实的数据信息整合到html文件中返回给客户端,一般原创 2020-06-02 17:43:04 · 277 阅读 · 0 评论 -
深入了解Express:挑战手写Express(2), 支持中间件
这里将在上次路由的代码上进行变更,所以不会给出完整的代码,只会给出删改的部分,但是思路会说到的:Express中是支持中间件机制的,而中间件其实就是一个函数,在express执行过程中,中间件使用next()进行串联,而我们上次实现的路由机制中,我们也实现了Router层,Route层的next方法,使得在路由匹配的过程可以逐层向下匹配。 所以这里的实现机制就是利用上次的 路由实现,将中间件也和路由放到一个stack中,使得在这个匹配中可以使用一套next执行机制串联中间件和路由。除了中间件原创 2020-05-27 17:38:02 · 215 阅读 · 0 评论 -
深入了解Express:挑战手写Express(1),实现路由
Express是Node.js服务端开发中一个比较完善的框架了,其中很多的思想理念还是很值得我们深入学习的,这一专题开始,我们开始尝试实现手写Express框架,对Express进行深入解析这里将以需求带动开发的方式逐步对Express进行实现,所以这里先简单写一个Express的例子:const express = require("express")const app = express();app.get("/", function(req, res, next){ console.l原创 2020-05-26 19:12:31 · 424 阅读 · 0 评论 -
Node番外篇:浅谈RESTful
今天的node番外篇我们来说说RESTful的那些事!首先,REST是什么?REST(Representational State Transfer) REST简单的理解是一种设计风格,用于创建万维网软件架构的风格,常应用于网络服务的创建。REST中的六个限制:客户端-服务端架构(Client-Server)原因: (1)关注点分离,服务端专注于数据的逻辑处理,提升了简单性,前端...原创 2020-02-10 17:48:29 · 345 阅读 · 0 评论 -
Node番外篇:LeanCloud平台下node发送短信验证码
继上次node发送邮件后,node番外篇二我们来说说如何在LeanCloud平台上进行短信验证码的发送。是不是很激动,现在我们就来看看吧!!!使用CleanCloud平台发送短信验证码,首先我们肯定需要去平台进行用户注册并按照平台的指引完成实名认证,之后需要我们创建一个实例、当这一切你都完成后,点击进入我们的控制台 > 短信 > 设置 进行我们发送短信前的一些平台设置: 启用短信...原创 2020-01-19 16:18:46 · 291 阅读 · 0 评论 -
Node:(番外篇) 如何使用Nodejs向指定邮箱发送邮件
最近在做一个demo的时候需要使用到了邮件发送验证码的需求(不使用短信验证码的原因主要还是短信验证码需要花费~~),那继node路完结后开始推出番外篇,说说如何使用nodejs模块向邮箱发送信息;注: 今天我们使用的是QQ邮箱,其他的比如126邮箱也都是类似的首先第一步,使用node操作邮箱发送信息我们需要开启QQ邮箱的POP服务:开启步骤: 登录扣扣邮箱 -> 设置 -> ...原创 2020-01-11 23:38:32 · 1523 阅读 · 0 评论 -
再走Node路(终篇): 使用pm2进行项目上线配置
Node路我们零零散散的说了十天,这期间我们主要围绕着使用Nodejs建站进行node的学习,几天是我们node学习之旅的最后一站,我将为大家最后说到的是使用pm2进行node项目的线上配置先说一下pm2: 这是一个带有负载均衡的Node的进程管理器使用pm2可以进行进程的守护使用pm2启动多进程pm2进行日志访问记录我们首先简单介绍下pm2工具的一些常用的使用命令:pm2 ...原创 2019-12-16 13:23:43 · 320 阅读 · 0 评论 -
再走Node路:(篇九) node处理安全问题: sql注入,密码加密,xss攻击
经过我们之前的node路的学习,我们基本能够整合各种信息搭建一个小型的服务器系统弄了,那今天我们就来说一下服务器的安全问题: (注意,这里我们说到的只是个大概,就不进行深入了)我们主要说到的安全问题有三个:sql注入密码加密xss攻击1.关于sql注入,我们举一个简单的例子,他其实就是恶意者对我们数据库的攻击,获取我们数据库中的用户信息等私密的数据,我们之前在连接数据库...原创 2019-12-15 15:36:04 · 426 阅读 · 0 评论 -
再走Node路: (篇八) express & koa 中进行日志记录
node路继续,我们上一次说到了使用原生的node如何对我们的项目进行日志的记录,在看此篇文章前,推荐先看如何使用原生的node进行日志记录,因为这里我们不会再说到原理的东西,毕竟之前我们已经说到了,这里我们直接使用morgan在两大框架中进行日志的记录:express 脚手架安装的项目中,已经进行了基本的日志记录了,包括在koa中,也是使用了一个koa-logger在开发环境下进行日志的记录...原创 2019-12-14 23:28:24 · 668 阅读 · 0 评论 -
再走node路: (篇七)原生node为服务器写日志
对于一个服务,若我们没有进行日志记录,那么这台服务器可以说成是瞎子也不为过了,为服务写日志的目的是为了了解到问我们服务运行期间的一些情况,被多少次访问了,期间什么时候那些接口出现了错误等等我们都需要日志来进行记录常见的日志我们都是记录到文件中的,为什么不用redis数据库或者是mysql数据库来存储我们这里也先说一下:关于redis缓存数据库我们之前进行登录验证的时候也说到了,它作为内存...原创 2019-12-10 16:01:09 · 425 阅读 · 0 评论 -
再走node路:(篇六) 使用cheerio模块实现node爬虫
珊珊来迟,今日分node继续: 之前几天我们介绍使用node搭建服务器的一些小插曲,其实现在我觉得今天突然插入node爬虫不是很合适,我们应该先将node搭建服务器说完在继续这些,但考虑昨天的预告中我们说到了今天讲一下node爬虫,所以这里我们就当做一个小插曲吧,之后我们还是继续说一些node搭建服务器的东西,关于node使用redlock插件实现基于redis的node分布式锁就先往后延一延啦...原创 2019-12-09 22:59:52 · 490 阅读 · 0 评论 -
再走Node路(篇五): express && koa 脚手架项目上配置session
昨日我们说到了如何使用原生的nodejs实现cookie + session + redis制作登录验证,但原生实现起来毕竟太过于麻烦,而现在的node项目又多是基于express和koa框架开发的,所以我们今天就来说一下如何在express 和 koa 脚手架创建的项目中配置使用session实现登录验证既然我们这里使用了express 和 koa 的脚手架创建项目,所以我们也有必要简单说一...原创 2019-12-08 19:35:32 · 374 阅读 · 0 评论 -
再走NODE路: (篇四)原生node实现 cookie + session + redis 登录验证
关于登录这块应该是每一个系统中都必须的一个环节之一,虽然现在的第三方登录确实很流行,也很安全,但别人的始终是别人的。所以我们今天就来说一下如何使用原生的node实现客户端登录验证关于cookie(仅仅是我的理解): cookie是存储在浏览器的一段字符串,最长限制5kB,它的一些特性如下:跨域不共享: 及在不同的请求域下的cookie的值是不同的格式为键值的形式: 即 “k1=a1; ...原创 2019-12-07 20:41:13 · 890 阅读 · 3 评论 -
再走NODE路:(篇三)数据库连接之 Sequelize
昨天我们说到使用node中的mysql 模块连接操作mysql 数据库,在文章的最后我们说到了可以使用Sequelize以完全的js 的形式创建,操作数据表, 那么我们今天就来说说Sequelize 具体应该怎么去使用首先我们还是说一下前期的准备工作:初始化一个node的开发项目: npm init -y项目中安装上sequelize安装上mysql2 (由于这里我们仍然是操作m...原创 2019-12-06 21:11:46 · 559 阅读 · 0 评论 -
再走NODE路(篇二): node 连接操作 mysql 数据库
node篇二: 使用node连接mysql 数据库昨天我们使用node && Express && koa 简单介绍了如何创建基本的服务器以及如何进行基本的请求数据处理。但作为服务端开发来说,不能连接操作数据库进行数据存储,那么这个服务端工程师就是半废品状态。所以我们今天就来说一下在Node中我们如何进行数据库的连接操作: (这里我们操作的是关系型数据库 mys...原创 2019-12-05 18:50:25 · 268 阅读 · 0 评论 -
再走NODE路:原生 &&Express && Koa2 分别简单实现服务端路由开发
开始前,我们先说一下客户端http请求服务端相应的大致过程:上图的说法可能不准确,但能描述个大致就行了:首先我们的客户端浏览器根据域名进行请求,域名经过DNS解析后及得到我们的服务器的ip地址,此时便可根据这个ip地址找到相应的服务端,之后的三次握手通俗的说就是客户端告诉服务端我需要发起请求,服务端又告知客户端我是可以请求的,之后客户端在发起具体的请求。 之后客户端再发起具体的数据请求到服务端...原创 2019-12-04 17:21:53 · 222 阅读 · 0 评论