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

这篇具有很好参考价值的文章主要介绍了【Node.js实战】一文带你开发博客项目之登录(前置知识)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

个人简介

👀个人主页: 前端杂货铺
🙋‍♂️学习方向: 主攻前端方向,也会涉及到服务端
📃个人状态: 在校大学生一枚,已拿多个前端 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 端存储用户信息

node.js+express+koa2 开发web server博客,node.js+express+koa2博客项目,node.js,前端,javascript

3、redis

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

node.js+express+koa2 开发web server博客,node.js+express+koa2博客项目,node.js,前端,javascript

4、为什么 session 适合用 redis?

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

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

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

三、安装 redis

安装 redis 参考链接

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

node.js+express+koa2 开发web server博客,node.js+express+koa2博客项目,node.js,前端,javascript

node.js+express+koa2 开发web server博客,node.js+express+koa2博客项目,node.js,前端,javascript

四、nodejs 连接 redis 的测试

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

node.js+express+koa2 开发web server博客,node.js+express+koa2博客项目,node.js,前端,javascript

安装 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 服务,终端运行文件:

node.js+express+koa2 开发web server博客,node.js+express+koa2博客项目,node.js,前端,javascript

五、写在最后

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

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

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


node.js+express+koa2 开发web server博客,node.js+express+koa2博客项目,node.js,前端,javascript文章来源地址https://www.toymoban.com/news/detail-832864.html


到了这里,关于【Node.js实战】一文带你开发博客项目之登录(前置知识)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Node.js实战】一文带你开发博客项目之Koa2重构(实现session、开发路由、联调、日志)

    个人简介 👀 个人主页: 前端杂货铺 🙋‍♂️ 学习方向: 主攻前端方向,也会涉及到服务端 📃 个人状态: 在校大学生一枚,已拿多个前端 offer(秋招) 🚀 未来打算: 为中国的工业软件事业效力n年 🥇 推荐学习:🍍前端面试宝典 🍉Vue2 🍋Vue3 🍓Vue2Vue3项目实战 🥝

    2024年01月16日
    浏览(16)
  • 【Node.js实战】一文带你开发博客项目之安全(sql注入、xss攻击、md5加密算法)

    个人简介 👀 个人主页: 前端杂货铺 🙋‍♂️ 学习方向: 主攻前端方向,也会涉及到服务端 📃 个人状态: 在校大学生一枚,已拿多个前端 offer(秋招) 🚀 未来打算: 为中国的工业软件事业效力n年 🥇 推荐学习:🍍前端面试宝典 🍉Vue2 🍋Vue3 🍓Vue2Vue3项目实战 🥝

    2024年02月03日
    浏览(12)
  • 【Node.js】一文带你开发博客项目之接口(处理请求、搭建开发环境、开发路由)

    个人简介 👀 个人主页: 前端杂货铺 🙋‍♂️ 学习方向: 主攻前端方向,也会涉及到服务端 📃 个人状态: 在校大学生一枚,已拿 offer(秋招) 🥇 推荐学习:🍍前端面试宝典 🍉Vue2 🍋Vue3 🍓Vue2Vue3项目实战 🥝Node.js 内容 参考链接 Node.js(一) 初识 Node.js DNS 解析,建

    2023年04月21日
    浏览(10)
  • Node.js博客项目开发思路笔记

    开发一个博客系统,具备博客基本功能 只开发 server 端,不关心前端 首页、作者页、博客详情页 登陆页 管理中心、新建页、编辑页 数据如何存储 博客 id title content createtime author 1 标题 1 内容 1 1111112 zhangsan 2 标题 2 内容 2 1111111 lisi 用户 id username password realname 1 zhangsan 123 张三

    2024年02月12日
    浏览(12)
  • 实战:Docker化Node.js项目

    Docker是一种轻量级的应用容器技术,可以将应用程序及其所有依赖项打包成一个可移植的容器,以便在任何支持Docker的环境中运行。Node.js是一种基于Chrome的JavaScript运行时,可以用于构建高性能和可扩展的网络应用程序。在现代软件开发中,将Node.js应用程序Docker化是一项重要

    2024年02月21日
    浏览(20)
  • 4.php开发-个人博客项目&登录验证&cookie&session&验证码安全

    目录 4.php开发-个人博客项目登录验证cookiesession验证码安全 知识点 本节大纲思路 ——这里以我自己的为例—— cookie验证—————— login1.php-登录后台界面 login_check.php-检查,作为包含文件 add_news.php-后台界面 php编码 如何创建 Cookie?--setcookie() 语法 实例 1 php header跳转 演示

    2024年01月23日
    浏览(14)
  • 4.php开发-个人博客项目&登录验证&cookie&session&验证码安全​

    目录 知识点 本节大纲思路 ——这里以我自己的为例—— cookie验证—————— login1.php-登录后台界面 login_check.php-检查,作为包含文件 add_news.php-后台界面 php编码 如何创建 Cookie?--setcookie() 语法 实例 1 php header跳转 演示案例-cookie验证脆弱问题 session验证—————— sess

    2024年01月25日
    浏览(12)
  • 小迪安全 第15天:php开发-个人博客项目&登录验证&cookie&session&验证码安全

    1.后台验证-登录用户逻辑安全-怎么去判定用户登陆成功 2.后台验证-COOKIESESSION 3.后台验证-验证码·万能密码等 思路: 1.发送登录请求 账号 密码 2.接收账号密码 3.判断账号密码的准确性 正确 成功登陆-跳转成功页面 错误 失败登录-重新登陆 后台管理系统有多个文件页面,为了

    2024年04月15日
    浏览(20)
  • Vue.js+Node.js开发实战就业反馈小程序-培训机构学员

     💖💖更多项目资源,最下方联系 IT实战课堂 ✨✨✨✨✨✨ 博主拥有多年的T技术研发项目架构和教学经验,CSDN/51CTO/腾讯课堂等平台优质作者、高级讲师,培训机构联合创始人!现专注项目定制Java、小程序、前端网页、Python、App、NodeJs、PHP、微服务、NET等远程部署、售后答

    2024年02月20日
    浏览(16)
  • 【node进阶】一文带你快速入门koa框架

    ✅ 作者简介:一名普通本科大三的学生,致力于提高前端开发能力 ✨ 个人主页:前端小白在前进的主页 🔥 系列专栏 : node.js学习专栏 ⭐️ 个人社区 : 个人交流社区 🍀 学习格言: ☀️ 打不倒你的会使你更强!☀️ 💯 刷题网站:这段时间有许多的小伙伴在问有没有什么

    2024年01月22日
    浏览(18)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包