Node+mysql-注册和登录账号实现(原生)

news/2024/10/20 16:08:00/

1.创建数据表

说明:创建id,username,password字段,并设置了类型。

2.导入mysql库

 npm i mysql@2.18.1

3.创建了db文件夹

说明:创建mysql数据池

// 导入mysql包
const mysql=require("mysql")
// 创建mysql连接池
const db=mysql.createPool({host:"127.0.0.1",user:"root",password:"123456",database:"convenience_services"
})
// 暴露mysql连接池
module.exports=db

4.声明请求方法

const express = require("express");
// 创建路由对象
const router = express.Router();// 导入用户相关的函数处理
const { register, login } = require("../router_handler/user");
// 注册接口
router.post("/login", login);// 登录接口
router.post("/register", register);module.exports = router;

5. 处理函数模块

// 导入db数据库连接池
const db = require("../db/mysql");
// 注册函数处理
exports.register = (req, res) => {//    定义注册sql语句(下面一句是mysql第三库的简便写法(对象))const sql = `insert into user set?`;// 数据库操作方法db.query(sql, req.query, (err, results) => {if (err)return res.send({status: 1,message: err.message,});if (results.affectedRows !== 1)return res.send({status: 1,message: "注册失败,请稍后再试",});res.send({status: 0,message: "注册成功",});});
};
// 登录函数处理
exports.login = (req, res) => {// 用户输入的密码const { username, password } = req.query;//  sql语句const sql = `select * from user where username=?`;db.query(sql, username, (err, results) => {if (err)return res.send({status: 1,message: err.message,});if (results.length !== 1)return res.send({status: 1,message: "登录失败,请稍后再试",});//  数据库返回的密码const dataPassword = results[0].password;if (dataPassword !== password)return res.send({status: 1,message: "账号和密码错误",});res.send({status: 0,message: "登录成功",});});
};

6.注册实现

7.登录

 8.总结

说明:

1.多次执行的就应该封装中间件。

2.没有加入表单验证。

3.密码没有进行加密处理。

4.请求方式应该放入body中,而不是query来传递账号和密码,很不安全。

5.应该加入token,用户登录时派发。

9.以后更新

 

 


http://www.ppmy.cn/news/856631.html

相关文章

机器学习实战 | 深度学习初级项目学习和总结

目录 简介神经网络类型和用法总结1. 卷积神经网络CNN特点结构用处 2. 循环神经网络RNN特点结构用处 3. 长短期记忆网络LSTM特点结构用处 基于Keras的神经网络用法总结1. 创建2. 编译3. 训练4. 保存5. 预测 简介 准备写个系列博客介绍机器学习实战中的部分公开项目。首先从初级…

华为USG系列防火墙配置-网页端登录管理

笔者测试的华为防火墙型号为:HUAWEI USG 6305。 华为USG防火墙默认有一个MGMT端口用来网页端配置管理,端口的IP一般默认是192.168.0.1,端口标识为MGMT,如果无独立MGMT端口,通常0端口是MGMT端口。 电脑设置固定IP 固…

华为转正答辩ppt范文_华为新员工转正答辩

新员工试用期管理是企业人才使用中的一个重要环节。新员工入职后的前3个月非常重要。在这段时间内,通过导师的辅导,新员工应该对自身岗位的工作要求有明确的认知,并适应工作环境,融入公司文化。 华为在新员工转正方面一直有规范化的管理方式,就是新员工转正答辩。新员工转…

【100%通过率】华为OD机试真题 Java 实现【新学校选址】【2022.11 Q4 新题】

所有题目均有五种语言实现。C实现目录、C++ 实现目录、Python实现目录、Java实现目录、JavaScript实现目录

华为交换机创建账号密码方式SSH登录

华为交换机SSH 创建管理账号密码 华为交换机上面创建账号 第一步: sys aaa local-user huawei123 password cipher *** #huawei123:自己设置的用户名 ;#cipher :后面是自设置的密码。 local-user huawei123 privilege leve…

华为使用网线通过浏览器登录AC6005的Web网管

使用网线通过浏览器登录AC的Web网管 操作步骤 1. 使用网线将PC与AC的网口(不同型号略有不同)相连: 对于有管理网口的AC(如AC6605),请连接ETH管理网口。 对于无管理网口的AC(如AC6005…

华为设备基本ACL和高级ACL综合配置

实验需求: 0、做之前确保全网互通 1、-交换机用路由器代替,WG主机用路由器模拟 2、-AR1只能允许WG登陆 3、-YF和CW之间不能互通,但可以和WG互通 4、-WG和YF可以访问Client1 5、-CW不能访问Client1 6、-YF和WG只能访问Server1的WWW服务 7、-只…

华为交换机配置SSH——实现远程登录调试

配置说明 企业中交换机很多,并且部署在各个楼层、各个楼宇、甚至异地,做为网络工程师不可能搬着电脑满世界跑着去配置交换机,通过配置SSH远程登录,实现随时随地运维,同时,SSH采用加密方式传输,…