node.js实战一文带你开发博客项目之登录(前置知识)(代码片段)

前端杂货铺 前端杂货铺     2023-04-02     354

关键词:

个人简介

👀个人主页: 前端杂货铺
🙋‍♂️学习方向: 主攻前端方向,也会涉及到服务端
📃个人状态: 在校大学生一枚,已拿多个前端 offer(秋招)
🚀未来打算: 为中国的工业软件事业效力n年
🥇推荐学习:🍍前端面试宝典 🍉Vue2 🍋Vue3 🍓Vue2&Vue3项目实战 🥝Node.js
🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧

Node.js系列文章目录

内容参考链接
Node.js(一)初识 Node.js
Node.js(二)Node.js——开发博客项目之接口
Node.js(三)Node.js——一文带你开发博客项目(使用假数据处理)
Node.js(四)Node.js——开发博客项目之MySQL基础
Node.js(五)Node.js——开发博客项目之API对接MySQL

文章目录


一、前言

登录功能一般都是有 约定俗成的方法 的。

在这里我们使用 session 的方式 去实现登录功能!

二、cookie、session、redis

1、cookie

  • 存储在浏览器的一段字符串(最大 4kb)
  • 跨域不共享
  • 格式如 k1=v1;k2=v2;k3=v3; 因此可以存储结构化数据
  • 每次发送 http 请求,会将请求域的 cookie 一起发送给 server
  • server 可以修改 cookie 并返回给浏览器
  • 浏览器中也可以通过 JavaScript 修改 cookie(有限制)

2、session

  • 单独使用 cookie 会暴露 username,很危险
  • 如何解决:cookie 中存储 userid,server 端对应 username
  • 解决方案:session,即 server 端存储用户信息

3、redis

  • web server 最常用的缓存数据库,数据存放在内存中
  • 相比于 mysql,访问速度快(内存和硬盘不是一个数量级的)
  • 但成本更高,可存储的数据量更小(内存的硬伤)
  • 将 web server 和 redis 拆分为两个单独的服务
  • 双方都是独立的,都是可扩展的(例如都扩展成集群)
  • (包括 mysql,也是一个单独的服务,也可扩展)

4、为什么 session 适合用 redis?

  • session 访问频繁,对性能要求极高
  • session 可不考虑断电丢失数据的问题(内存的硬伤)
  • session 数据量不会很大(相对于 mysql 中存储的数据)

5、为何网站数据不适合用 redis?

  • 操作频率不是太高(相比于 session 操作)
  • 断电不能丢失,必须保留
  • 数据量太大,内存成本太高

三、安装 redis

安装 redis 参考链接

有以下内容输出,即安装成功:

四、nodejs 连接 redis 的测试

创建 redis-test 文件夹,控制台输入 npm init -y 进行初始化,并创建 index.js 文件

安装 redis

npm i redis

index.js 文件

  • 导入 redis 模块
  • 创建客户端并连接(端口号,服务端地址)
  • 退出
const redis = require('redis')

!(async function () 
    // 创建客户端
    const redisClient = redis.createClient(6379, '127.0.0.1')

    // 连接
    await redisClient.connect()
        .then(() => console.log('redis connect success!'))
        .catch(console.error)
        
    // set
    await redisClient.set('myname', 'zahuopu')
    
    // get
    const myname = await redisClient.get('myname')
    console.log('myname', myname)
    
    // 退出
    redisClient.quit()
)()

开启 redis 服务,终端运行文件:

五、写在最后

至此,我们明白了为什么要把 session 存入 redis,并对 redis 做了连接的测试。继续跟进学习吧!

后续会对该项目进行多次重构【多种框架(express,koa)和数据库(mysql,sequelize,mongodb)】

如果你需要该项目的 源码,请通过本篇文章最下面的方式 加入 进来~~



node.js实战一文带你开发博客项目之安全(sql注入xss攻击md5加密算法)(代码片段)

...4d;前端面试宝典🍉Vue2🍋Vue3🍓Vue2&Vue3项目实战🥝Node.js🍒Three.js🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧Node.js系列文章目录内容参考链接Node.j... 查看详情

node.js实战一文带你开发博客项目之安全(sql注入xss攻击md5加密算法)(代码片段)

...4d;前端面试宝典🍉Vue2🍋Vue3🍓Vue2&Vue3项目实战🥝Node.js🍒Three.js🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧Node.js系列文章目录内容参考链接Node.j... 查看详情

node.js实战一文带你开发博客项目之安全(sql注入xss攻击md5加密算法)(代码片段)

...4d;前端面试宝典🍉Vue2🍋Vue3🍓Vue2&Vue3项目实战🥝Node.js🍒Three.js🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧Node.js系列文章目录内容参考链接Node.j... 查看详情

node.js实战一文带你开发博客项目之安全(sql注入xss攻击md5加密算法)(代码片段)

...4d;前端面试宝典🍉Vue2🍋Vue3🍓Vue2&Vue3项目实战🥝Node.js🍒Three.js🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧Node.js系列文章目录内容参考链接Node.j... 查看详情

node.js实战一文带你开发博客项目之安全(sql注入xss攻击md5加密算法)(代码片段)

...4d;前端面试宝典🍉Vue2🍋Vue3🍓Vue2&Vue3项目实战🥝Node.js🍒Three.js🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧Node.js系列文章目录内容参考链接Node.j... 查看详情

node.js实战一文带你开发博客项目(api对接mysql)(代码片段)

...4d;前端面试宝典🍉Vue2🍋Vue3🍓Vue2&Vue3项目实战🥝Node.js🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧Node.js系列文章目录内容参考链接Node.js(一ÿ... 查看详情

node.js实战一文带你开发博客项目之联调(导入htmlnginx反向代理cors解决跨域与前端联调)(代码片段)

...4d;前端面试宝典🍉Vue2🍋Vue3🍓Vue2&Vue3项目实战🥝Node.js🍒Three.js🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧Node.js系列文章目录内容参考链接Node.j... 查看详情

node.js实战一文带你开发博客项目(mysql基础)(代码片段)

...4d;前端面试宝典🍉Vue2🍋Vue3🍓Vue2&Vue3项目实战🥝Node.js🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧Node.js系列文章目录内容参考链接Node.js(一ÿ... 查看详情

node.js实战一文带你开发博客项目之联调(导入htmlnginx反向代理cors解决跨域与前端联调)(代码片段)

个人简介👀个人主页:前端杂货铺🙋‍♂️学习方向:主攻前端方向,也会涉及到服务端📃个人状态:在校大学生一枚,已拿多个前端offer(秋招)🚀未来打算:为中国的工业软件... 查看详情

node.js实战一文带你开发博客项目(使用假数据处理)(代码片段)

...4d;前端面试宝典🍉Vue2🍋Vue3🍓Vue2&Vue3项目实战🥝Node.js🌕个人推广:每篇文章最下方都有加入方式,旨在交流学习&资源分享,快加入进来吧Node.js系列文章目录内容参考链接Node.js(一ÿ... 查看详情

熬夜之作:一文带你了解cat分布式监控(代码片段)

Cat是什么?CAT(CentralApplicationTracking)是基于Java开发的实时应用监控平台,包括实时应用监控,业务监控。CAT作为服务端项目基础组件,提供了Java,C/C++,Node.js,Python,Go等多语言客户端,已经在美团点评的基础架构中间件框架(MVC... 查看详情

『python开发实战菜鸟教程』实战篇:一文带你了解人脸识别应用原理及手把手教学实现自己的人脸识别项目(代码片段)

文章目录0x01:引子0x02:环境搭建0x03:开发实战 1.实现人脸检测标记2.人脸特征点提取3.人脸识别验证0x04:后记开源GitHub地址--> https://github.com/xiaosongshine/dlib_face_recognition推荐补充阅读:『Python开发实战菜鸟... 查看详情

node.js+vue+mysql项目实战入门之环境搭建,项目创建-附github地址(代码片段)

Node进行后端开发,Vue进行前端页面的开发,实现了前后端的分离。在开发中使用Express框架可以快速地开发web应用程序。1.安装node.js下载对应版本的,网址:Download|Node.js;进行傻瓜式安装:最后点击install... 查看详情

node.js+vue+mysql项目实战入门之环境搭建,项目创建-附github地址(代码片段)

Node进行后端开发,Vue进行前端页面的开发,实现了前后端的分离。在开发中使用Express框架可以快速地开发web应用程序。 1.安装node.js下载对应版本的,网址:https://nodejs.org/en/download/;进行傻瓜式安装:最... 查看详情

一文带你认识nodejs

​node.js初探Node.js是一个JS的服务端运行环境,简单的来说,它是在JS语言规范的基础上,封装了一些服务端的运行时对象,让我们能够简单实现非常多的业务功能。如果我们只使用JS的话,实际上只是能进行一些简单的逻辑运算... 查看详情

重磅回归-ssm整合进阶项目实战之个人博客系统

...输出:我自己实现的spring4+springmvc+mybatis3整合的进阶项目实战-个人博客系统已然完成了,系统采用mvc三层模式进行整体的开发,涉及到技术一下子很难全部列出,其中不得不提的有:整合shiro实现登录安全认证,整合lucene实现全... 查看详情

带你开发一个完整的node.js项目

「他们根本不知道,现在的电商大促有多么依赖Node.js」任职阿里的架构师朋友这么说。 说真的,我倒并不意外。作为一个定位明确的高性能Web服务器,Node.js非常火热,几乎霸占了前端生态。各种脚手架、前端打... 查看详情

概念+实战讲解!一文带你了解rfm模型kaggle项目实战分享数据分析(代码片段)

...评分后输出目标用户基于RFM的常用策略补充三、kaggle项目实战讲解1数据探 查看详情