Nodejs学习二

五、开发博客之数据存储

5.1、Mysql介绍

mysql是企业最常用的存储工具

5.2、操作数据库

1、查看所有的数据库

show databases ; 

2、建表
id: 表示每一条数据是唯一的
column :多少列
datatpe: 类型(数字还是字符串)
pk: 主键 所有的行的值都不会重复(id)
AI:自增(id)

3、增删改查
命令:
1、use 表名
2、增:

insert into users (username,`password`,realname) values ('zhangsan','123','张三')

查询:

select * from users ;
select id,username from users ;
select * from users where username='zhangsan' ;
select * from users where username='zhangsan' and password='123';
select * from users where username='zhangsan' or password='123';
select * from users where username like '%zhangsan%' ;
select * from users where username like '%zhangsan%' order by id desc;

更新:

update users set realname='ls2' where username='lisi' ;

删除:

delete from users where username='lisi' ;

加state列,表示状态,1为存在0为不存在,用state更新来假装删除(软删除)

select * from users where state <> '0' //不等于0

5-4 nodejs操作数据库
1、用demo示例
cnpm init -y
cnpm i mysql
2、封装:将其封装为系统可用的工具
3、使用:让API直接操作数据库,不再使用假数据

增:返回insertId
在这里插入图片描述
删:
在这里插入图片描述
改:affectedRows和changedRows
在这里插入图片描述
查:返回一个数组
在这里插入图片描述
5-5 nodejs链接mysql做成工具

拆分文件:
一个配置文件,分为本地和远程
一个sql函数

5-6 API对接mysql(博客列表)
1、在controller里面的blog.js把假数据删除,把mysql工具引入。
2、在controller的router中改为返回成promise对象

5-6 API对接mysql(博客详情和新建)
新建博客返回博客的id
5-6 API对接mysql(博客更新和删除)
更新返回true或者false
删除(需要id)返回true或者false
5-7 API对接mysql(博客登录)
验证用户名和密码登录。
5-8 总结
创建库、表、sql语句的使用和语法,nodejs连接mysql,应用到API

六、开发博客之登录

6-1、开始
当更新、删除博客时,要验证是否登录,还有管理中心的页面
核心:
1、登录校验
2、登录信息存储(用户名 还有其他的需求用于管理信息中心)

目录:
1、cookie和session
cookie是实现登录的基础
session是实现登录目前的一个解决方案
2、session写入redis
redis,是server端必须要知道的东西,是一个内存数据库,用来存储session
3、开发登录功能,和前端联调(nginx反向代理)

6-2、cookie

1、什么是cookie

  • 存储在浏览器的一段字符串(最大5kb)
  • 跨域不共享 淘宝,又打开百度,cookie不共享
  • 格式:k1=v1;k2=v2;自己来结构化
  • 每次发送http请求,会将请求域的cookie一起发送给server端 server端可以修改cookie并返回给浏览器
  • 浏览器也可以通过js修改cookie(有限制)

2、js 操作cookie,浏览器中查看cookie

  • request-headers:浏览器给服务器发送的cookie

  • respose-headers:服务器修改cookie后返回给浏览器端的(set-cookie)

  • Application 里面cookies保存着cookie信息(Name表示cookie值,Value表示cookie值)

  • document.cookie的值查看

  • document.cookie = ‘k1=v1’;来增加cookie

3、server端操作cookie,实现登录验证

6-3、nodejs操作cookie

1、查看cookie
2、修改cookie
3、实现登录验证

如果cookie里面有username,代表已经登录了,如果cookie里没有username,就代表没有登录

cookie赋值要后端来做

res.setHeader('Set-Cookie', `username=${data.username}; path=/`)

6-4、cookie做限制(1)

由于前端可以通过document.cookie来随意的修改用户名
,作为李四伪造张三,来查看张三的一些敏感信息

加httpOnly,就只能通过后端去修改,不能通过前端去修改了

6-5、cookie做限制(2)

expires做过期时间的限制


6-6、session介绍

用cookie回暴露用户名
解决:cookie中存储userid,server端对应username
解决方案:session,即server端存储用户信息

6-7、session演示

cookie用userid来表示,第一次登录,把用户名和密码保存在session中,返回给客户端userid,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于想要学习 Node.js 的人来说,以下是一个常见的学习路线: 1. 入门基础知识:首先了解 JavaScript 的基础知识,包括变量、控制流、函数等等。可以通过在线教程、书籍或视频课程学习。 2. 了解后端开发概念:学习关于服务器端开发的基本概念,例如 HTTP、网络通信、数据库等。 3. 学习 Node.js 基础:通过官方文档或在线教程学习 Node.js 的基础知识,包括安装、模块系统、事件驱动编程等。 4. 掌握核心模块:了解和熟悉 Node.js 的核心模块,例如 fs、http、path 等,以便能够构建简单的服务器应用程序。 5. 学习 Express 框架:Express 是一个流行的 Node.js Web 框架,学习它可以帮助你构建更复杂的 Web 应用程序。可以阅读官方文档或参考教程来学习 Express。 6. 学习数据库集成:了解如何在 Node.js 中使用数据库,例如 MongoDB 或 MySQL。学习数据库连接、CRUD 操作等。 7. 异步编程:深入理解 Node.js 的异步编程模型,包括回调函数、Promise、async/await 等。 8. 学习 RESTful API 设计:了解如何设计和构建符合 RESTful 风格的 API。 9. 深入学习和探索:根据个人兴趣和需求,学习其他 Node.js 相关的技术、工具和框架,例如 WebSocket、GraphQL、Socket.io 等。 记住,这只是一个大致的学习路线,你可以根据自己的兴趣和需求进行调整和扩展。实践对于学习 Node.js 来说非常重要,所以尽量多做一些实际项目来巩固所学知识。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值