位置: IT常识 - 正文

【Node.js实战】一文带你开发博客项目之登录(前置知识)(node js教程)

编辑:rootadmin
【Node.js实战】一文带你开发博客项目之登录(前置知识)

推荐整理分享【Node.js实战】一文带你开发博客项目之登录(前置知识)(node js教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node.js in action,node js教程,node js教程,node js教程,node.js gui,node.js入门教程,node-js,node.js 10实战,内容如对您有帮助,希望把文章链接给更多的朋友!

个人简介

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

Node.js系列文章目录内容参考链接Node.js(一)初识 Node.jsNode.js(二)Node.js——开发博客项目之接口Node.js(三)Node.js——一文带你开发博客项目(使用假数据处理)Node.js(四)Node.js——开发博客项目之MySQL基础Node.js(五)Node.js——开发博客项目之API对接MySQL文章目录Node.js系列文章目录一、前言二、cookie、session、redis1、cookie2、session3、redis4、为什么 session 适合用 redis?5、为何网站数据不适合用 redis?三、安装 redis四、nodejs 连接 redis 的测试五、写在最后一、前言

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

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

二、cookie、session、redis1、cookie存储在浏览器的一段字符串(最大 4kb)跨域不共享格式如 k1=v1;k2=v2;k3=v3; 因此可以存储结构化数据每次发送 http 请求,会将请求域的 cookie 一起发送给 serverserver 可以修改 cookie 并返回给浏览器浏览器中也可以通过 JavaScript 修改 cookie(有限制)2、session单独使用 cookie 会暴露 username,很危险如何解决:cookie 中存储 userid,server 端对应 username解决方案:session,即 server 端存储用户信息

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

4、为什么 session 适合用 redis?session 访问频繁,对性能要求极高session 可不考虑断电丢失数据的问题(内存的硬伤)session 数据量不会很大(相对于 mysql 中存储的数据)5、为何网站数据不适合用 redis?操作频率不是太高(相比于 session 操作)断电不能丢失,必须保留数据量太大,内存成本太高三、安装 redis

安装 redis 参考链接

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

【Node.js实战】一文带你开发博客项目之登录(前置知识)(node js教程)

四、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)】

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

本文链接地址:https://www.jiuchutong.com/zhishi/299831.html 转载请保留说明!

上一篇:HTML5+CSS3模拟实现《亮剑》平安县城一役精彩微信群聊-谁开的炮?(html5/css3)

下一篇:【Flink】详解Flink的八种分区(flink从入门到实战)

  • 闲鱼收入的钱去哪里了(闲鱼挣的钱)

  • 快手下架的商品还能上架吗(快手下架的商品差评会有影响吗)

  • 拼多多保证金交多少合适(拼多多保证金交了有什么好处)

  • 拼多多隐形降权恢复期(拼多多隐形降权一般屏蔽多久)

  • 怎么改快手昵称为什么显示已经被注册了(改快手昵称说该名字已被注册)

  • 小红书阅读量为什么上不去(小红书阅读量为什么会减少)

  • 不能连wifi的电视怎么投屏(不能连接wifi的电视可以看网络电视吗)

  • 表格顶端标题怎么设置(表格顶端标题怎么做)

  • 电脑等于号怎么打(电脑等于号怎么用)

  • 华为nova6第一次充电需要充多久(华为nova6se第一次充电充多长时间)

  • 华为手表gt2能打电话吗(华为手表gt2能打电话微信吗)

  • 怎么样打开视频(多功能视频音响怎么样打开视频)

  • 怎样关闭电脑杀毒软件(怎样关闭电脑杀毒软件和防火墙win11)

  • 苹果电脑刷新键是哪个(苹果电脑刷新按键)

  • vivoz5有没有nfc(vivoz5有没有无线充电功能)

  • qq私密说说如何公开(QQ私密说说如何公开)

  • 12306余票不足(12306 余票不足)

  • 在抖音上怎么截图(在抖音上怎么截取别人图像图)

  • 如何制作简报电子版(如何制作简报电子版视频)

  • ipad有滚动截屏功能吗(ipad有滚动截屏吗)

  • 小米MDE6手机怎么截屏(小米mde6s手机)

  • 苹果地图怎么设置语音(苹果地图怎么设置粤语)

  • excel等差数列填充(excel等差数列填充两格)

  • 华为p30pro隐藏呼吸灯(华为p30通话界面隐藏)

  • 朋友圈加载更多是什么意思(朋友圈加载更多然后一条横线)

  • 鼠标怎么设置为左手? deepin20左手鼠标设置方法(鼠标怎么设置为右键功能)

  • SQL Server详细使用教程(包含启动SQL server服务、建立数据库、建表的详细操作) 非常适合初学者(sql server2016使用)

  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设 电脑维修 湖南楚通运网络