node:<8>连接数据库的摘要和对身份认证机制的认识

在我们学习任何一门编程语言的历程中,少不了接触各种各样的数据库,node也是一样,但不管哪一种数据库,有对应的模块就可以操作起来;

这里我介绍一下mysql和sql server这两个数据库的连接,不过装这些数据库和sql语句的编写就请大家自己去学吧;

1、mysql模块

npm i mysql

首先我们需要装载这个模块,然后导入:

const mysql = require('mysql')

获取到数据库连接池对象,然后使用该对象执行我们的sql操作:

//1.1 安装并导入MySQL模块
const sql = require('mysql')
//1.2 创建一个连接对象
const config = {
    user:'用户名',
    host:'127.0.0.1',
    password:'密码',
    database:'需要连接的数据库'
}
//1.3 创建一个数据库连接池
const conn = sql.createPool(config)
//1.4 使用连接池对象直接进行sql语句操作
const sqlstr = 'select * from student'
conn.query(sqlstr,(err,results)=>{
    if(err)return console.log(err.message)
    console.log(results)
})

挺简单的,也许是因为数据库比较流行的原因;

2、mssql这个数据库可就比较麻烦了,关于数据库更多的操作大家还是去学习一下sql语言更好一点,因为学号sql语言在学习很多语言是可以节省时间

同样,我们需要安装mssql模块和导入:

npm i mssql
const mssql = require('mssql')

不同是我们获取到数据库连接池对象,还要开启一个连接,在这个连接里面创建一个sql语句处理对象然后再执行sql语句:

const mssql = require('mssql')
const dbconfig = {
        user: 'sa',
        password: '密码',
        server: 'localhost',
        database: '数据库',
        connectionTimeout: 120000,
        requestTimeout: 3000000,
        retryTimes: 3,
        port: 1433,
options: {
        encrypt: false
},
pool: {
        max: 1024,
        min: 1,
        idleTimeoutMillis: 30000
}
} 
//2.1 创建数据库连接池
const conn=new mssql.ConnectionPool(dbconfig


//2.2 创建数据处理对象
const req = new mssql.Request(conn)

//2.3 新建一个连接
conn.connect((err)=>{
    if(err)return console.log(err)
    //1.4 使用简便插入一条数据
    const sqlstr1 = 'INSERT INTO Students SET ?'
    const stu2 = {sName:'李白',sCode:5555,sPhone:'18778667798'}
    const sqlstr3 = 'SELECT * FROM Students'
    const sqlstr4 = 'UPDATE Students SET sName=? ,sPhone=? WHERE sCode = ?'

    //3.1 更新数据
    req.query('sql语句')
   
})

而且连接的内容要比mysql复杂,这些对象不能搞混,创建连接池和数据处理对象用的是模块对象,而创建一个连接用的是数据库连接对象;

对于我们的连接对象,除了主机名、用户名、密码、数据库,其他的都可以照着写。

接下来我们说点题外话,关于设计理念,有两个:服务端渲染和前后端分离模式,你们了解吗?

顾名思义,服务端渲染就是数据全在服务端,适合与客户端交互较少而且占用服务端资源,但是适合CEO,也就是我们的爬虫,因为数据在服务端的话就好获取数据;而前后端分离是通过一系列的接口来呈现数据的,有利于客户端的交互,给我们的体验感更好,减少服务端的压力,但是不利于CEO,虽然如此,但也不是没有解决的办法,是可以用前段框架的SSR技术解决;

3、什么是身份认证机制呢?大家玩游戏是的实名认证其实也是,短信验证码、二维码、邮箱验证其实都是,我们操作起来都会,但是你们知道认证的过程吗?

如果说将上网比作是购物,那么我们的账户就相当于VIP账号,服务端就是柜台收银员,当我们访问的时候,需要向服务器验证我们的身份;

客户端访问的时候会发给服务端带有Cookie的请求,这个Cookie就是我们的vip卡,然后服务器就将这个cookie数据存下来,当然这是注册的时候,然后会返回给浏览器一段带有这个cookie的响应,浏览器就会存储下来,下次访问的时候会将cookie发送给服务端,然后服务端拿到cookie之后就会在服务器的内存中查找这个记录,如果有的话就会返回给浏览器,这不就是我们登录自己微软账号的时候开启同步自己的主题会变成以前的样子的原因吗。

不过这个cookie可不安全,我们需要一种认证机制来加密;

咱们就留到下期讲吧,他叫session。

好了就这些,大家若喜欢,不妨去我的公众号学习一下sql server :公众号:代码栈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程学渣ズ

谢谢老板

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值