nodejs使用sequelize操作数据库
接下来创建一个表 表名 users ,字段是5个
表结构如下 id设为索引并勾选自增 其他字段都为文本类型
之后保存 用户表已经有了 用户的姓名 邮箱 密码 和创建时间
接下来就用nodejs连接数据库并实现用户的注册和登录
新建server.js文件 安装express 并编写代码
我这里已经安装过nodemon 所以用nodemon运行server.js
接口已经跑起来了 接下来就是连接数据库
使用sequelize连接mysql数据库 sequelize文档地址
使用sequelize的好处是不需要再使用sql语句,查数据库的操作和操作对象是相似的,把数据库映射成对象,对对象进行操作
在项目中安装sequelize模块 这个模块是将关系型数据库的sql转化成可操作的对象 还需要安装mysql和mysql2
已经安装好了 接下来连接数据库
在项目文件夹下新建文件夹database 在database文件夹下新建db.js 并在db.js里引入sequelize
接着写连接数据库的配置信息 这个文件需要导出供其他文件使用
按照文档里的配置 实例化里传数据库名称node_sql 数据库的用户名root 密码root 主机是localhost 数据库类型是mysql pool是连接池信息 设置最大连接5个,连接了5个以上就需要等待,最小是0, 后两个参数看文档写 附上文档关于连接池的配置截图
在项目文件夹下新建文件夹models 在models文件夹下新建Users.js文件
导入db和Sequelize 使用define建模 users表 字段和数据库里的字段一一对应
给这些字段加上类型
和数据库中的字段类型也是一致的
导出并在外边的server.js里使用
访问127.0.0.1:5000/api/v1的时候就会执行Users.js文件 在Users.js里找对应的路由
接口正常的。接下来写注册接口
注册接口使用post的方式来接收参数 所以要先配置post数据解析 这里在server.js里使用express.json()来处理
可以看到拿到了传来的数据
继续写
拿到数据后就要存到数据库里了 在存数据库之前先查一下是否存在
测试一下
看到有报错了 不知道的字段 createdAt
控制台里也有信息
createdAt 和 updatedAt 这两个字段是模型自己加上去的,需要处理掉,在Users.js模型文件里加上
接下来再试一下
现在返回的是注册了,数据库里也有了一条数据
接下来对密码进行加密 安装bcryptjs
引入bcryptjs
之后改造接口
再来注册一下 这一次换了邮箱
数据库里第二条数据的密码是加密后的了
用相同的邮箱再次注册就会提示用户已存在
接下来写登录功能 在Users.js里增加登录的路由
现在来试一下登录
密码错误 这是因为使用的是第一个邮箱 而第一个邮箱在注册时接口里的密码还未加密 现在的登录接口是使用加密后的密码做比较的 所以密码就对不上了 接下来使用第二个邮箱登录看看
这就能登录上了 接下来要做的是在登录成功后返回token信息 token里包含一些对应的内容
已经安装好了 引入jsonwebtoken
在登录接口里 登录成功后返回一个token
登录成功并返回token了
拿到token之后可以解析token 看内容 这里我随便找了个解析jwt的网站看一下
可以看到token是包含用户信息的,有创建时间,也有过期时间,经过前端处理后就能拿到用户信息
这样解析到的数据就没有密码这个字段了
至此,nodejs使用sequelize操作数据库实现用户注册登录已经完成了
对应链接: