express+mysql实现简单的登录功能
登录页面图:

node.js文件代码:
const express=require("express");
const app=express();
const path=require("path")
const cors=require("cors")
const bodyParser=require("body-parser")
const db=require("./util/configDb.js")
app.listen(3000,()=>{
console.log("app start........")
})
app.use(bodyParser.urlencoded({
extended:true
}))
app.use(bodyParser.json())
app.use(cors())
app.use("/static",express.static(path.join(__dirname,"./views")))
app.post("/login",(req,res)=>{
console.log("服务端",req.body)
const {name,pwd}=req.body;
let sql=`select * from user where name=${name} and pwd=${pwd}`
console.log("sql",sql)
let sqlObj=[]
console.log("sqlObj",sqlObj)
let callBack=function(err,data){
console.log("data:",data.length)
if(err){
console.log("失败")
return
}
if(data.length!=1){
console.log("密码或用户名出错")
res.send({
msg:"用户名或密码出错",
code:400
})
return
}
res.send({
msg:"成功登录",
code:200
})
}
db.dbConn(sql,sqlObj,callBack)
})
configDb.js文件代码
const mysql=require("mysql")
module.exports={
config:{
host:"localhost",
user:"root",
password:"",
database:"infodb"
},
dbConn:function(sql,sqlObj,callBack){
let pool=mysql.createPool(this.config)
pool.getConnection((err,conn)=>{
if(err){
console.log(err)
return;
}
conn.query(sql,sqlObj,callBack)
conn.release();
})
}
}
index.html文件代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title>登录</title>
<style type="text/css">
*{
margin: 0px;
padding: 0px;
}
body{
width: 100%;
height: 100%;
background-color: #f5f5f5;
}
.area-box{
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
margin-top: 100px;
}
.login-group{
/* width: 100%; */
height: 40px;
background-color: white;
padding: 10px 30px;
}
.login-group input{
height: 24px;
outline: none;
border-radius: 20px;
padding-left: 10px;
}
.login-btn{
margin-top: 20px;
}
.login-btn button{
width: 200px;
height: 30px;
line-height: 30px;
border-radius: 20px;
outline: none;
}
</style>
</head>
<body>
<div class="area-box">
<div class="login-group">
<label>用户:</label>
<input type="text" name="" id="phone" placeholder="请输入手机号" />
</div>
<div class="login-group">
<label>密码:</label>
<input type="password" name="" id="pwd" placeholder="请输入密码" />
</div>
<div class="login-btn">
<button type="button" id="login">登录</button>
</div>
</div>
<script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
let phone=$("#phone")
let pwd=$("#pwd")
$("#login").click(function(){
if(phone.val().length==0||pwd.val().length==0){
alert("用户或密码不能为空")
return;
}
var getPhone=phone.val()
var getPwd=pwd.val()
var data={
"name":getPhone,
"pwd":getPwd
}
$.ajax({
type:"POST",
url:"http://localhost:3000/login",
data:data,
success:res=>{
console.log(res)
if(res.code==200){
alert(res.msg)
}else{
alert(res.msg)
}
},
error:err=>{
console.log(err)
}
})
})
</script>
</body>
</html>
下面是注册代码:
node.js代码;
app.post("/register",(req,res)=>{
const name=req.body.name;
console.log(name)
const pwd=req.body.pwd;
console.log(pwd)
let sql="select * from user where nickname=?"
let sqlArr=[name]
let callBack=(err,data1)=>{
if(err){
console.log(err)
return;
}
console.log("wishing数据",data1)
if (data1.length>=1){//测试查找的数据的长度,如果大于0就代表数据库中存在这个用户
res.send({
code:400,
msg:"该用户已存在",
affectedRows:data1.affectedRows
})
return;
}else{
let sql ="insert into user set nickname=?,password=?,state=1";
let sqlArr=[name,pwd]
let callBack=(err,data)=>{
if(err){
console.log(err)
return;
}
res.send({
code:200,
msg:"注册成功",
affectedRows:data.affectedRows
})
// console.log(data)
return;
}
db.dbConn(sql,sqlArr,callBack)
}
}
db.dbConn(sql,sqlArr,callBack)
})
html代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title>登录</title>
<style type="text/css">
*{
margin: 0px;
padding: 0px;
}
body{
width: 100%;
height: 100%;
background-color: #f5f5f5;
}
.area-box{
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
margin-top: 100px;
}
.login-group{
/* width: 100%; */
height: 40px;
background-color: white;
padding: 10px 30px;
}
.login-group input{
height: 24px;
outline: none;
border-radius: 20px;
padding-left: 10px;
}
.login-btn{
margin-top: 20px;
}
.login-btn button{
width: 200px;
height: 30px;
line-height: 30px;
border-radius: 20px;
outline: none;
} </style>
</head>
<body>
<div class="area-box"> <div class="login-group">
<label>用户:</label>
<input type="text" name="" id="username" placeholder="请输入用户名" />
</div>
<div class="login-group">
<label>密码:</label>
<input type="password" name="" id="pwd" placeholder="请输入密码" />
</div>
<div class="login-btn">
<button type="button" id="login">注册</button>
</div>
</div>
<script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
let username=$("#username")
let pwd=$("#pwd")
$("#login").click(function(){
console.log("开始")
if(username.val().length==0||pwd.val().length==0){
alert("用户或密码不能为空")
return;
}
var getPhone=username.val()
var getPwd=pwd.val()
var data={
name:getPhone,
pwd:getPwd
}
console.log(data)
$.ajax({
type:"POST",
url:"http://localhost:3000/register",
data:data,
success:res=>{
console.log(res)
if(res.code==200){
alert(res.msg)
document.location.href="index.html"
}else{
alert(res.msg)
}
},
error:err=>{
console.log(err)
}
})
})
</script>
</body>
</html>
另一个注册代码:
app.post("/register",(req,res)=>{
const name=req.body.name;
const pwd=req.body.pwd;
console.log(name,pwd)
// 首先要根据传递过来的数据查询数据库中是否已经存在该用户了
function regfun(){
var insert="insert into user (name,pwd) values (?,?)"
let insertArr=[name,pwd]
let insertCallBack=((err,data)=>{
if(err){
console.log(err)
return;
}
if(data..affectedRows==1){
req.session.info={
name:name,
pwd:pwd
}
res.send({
code:200,
msg:"注册成功"
})
}else{
res.send({
code:400,
msg:"注册失败"
})
}
})
db.dbConn(insert,insertArr,insertCallBack)
}
let sql1="select * from user where name=?";
let sqlArr=[name]
let callBack=((err,data)=>{
if(err){
console.log(err)
return;
}
if(data.length==1){
res.send({
code:201,
msg:"该用户已经存在"
})
}else{
regfun()
}
})
db.dbConn(sql1,sqlArr,callBack)
})
express+mysql实现简单的登录功能的更多相关文章
- 使用 NodeJS+Express+MySQL 实现简单的增删改查
关于node.js暂时记录如下,以后有时间一定学习 文章来自简书,作者:sprint,2016-07 使用 Node.js + Express+MySQL 实现简单的增删改查 https://www. ...
- spring Boot 简单的登录功能,利用了jdbcTemplate.class完成sql语句的执行,无需service层、dao层和.xml文件
1.搭建SpringBoot项目首先我们先在IDEA上创建一个SpringBoot的Web项目(1)file ——> new ——> project——> Spring Initia ...
- Node+Express+MySql实现简单增删改查和登录
var express = require('express'); var mysql = require('mysql'); var app = express(); var bodyParser ...
- JSP+MySQL最简单的登录和注册的实现 --Java Web温习
一.开发环境 开发工具:eclipse 2018-09 操作系统:win10 二.实现 1.目录结构: 2.数据库(创建tmp数据库,新建user表,user表结构如下) 3.功能简介 功能比较简单, ...
- 利用Express+MySQL进行简单的增删改查
前言: 随着JavaScript语言的快速发展,其功能越来越强大,能做的事情也越来越多. 目前,web前端工程师能够利用NodeJS搭建服务,也成为了越来越多互联网公司对前端开发的硬性要求. 本文主要 ...
- Nodejs&express+mongodb完成简单用户登录(即Nodejs入门)
刚了解nodejs,发现nodejs配置起来不复杂,但也有很多需要注意的地方,今天就记录一下,以后也可拿出来看看. 要完成这个简单的示例,从零开始,走三步就行了. 一.搭建开发环境 二.创建项目(ex ...
- 应用node+express+mysql 实现简单的增删改查
记录下来备忘 1.准备好webstrom编辑器,编辑器调整字体大小等在file->settings->editor下设置 注册码 来源网上: 2017.2.27更新 选择“license ...
- JavaSwing+Mysql实现简单的登录界面+用户是否存在验证
原生Java+mysql登录验证 client login.java 功能:实现登录页面,与服务端传来的数据验证 package LoginRegister; import java.awt.Cont ...
- servlet实现简单的登录功能
1.登录页面 Login.html <%@page contentType="text/html" pageEncoding="UTF-8"%> & ...
随机推荐
- ambarella H2平台fpga捕捉卡驱动案例
公司最近开发的一款产品用到了ambarella H2平台的一款Soc,众所周知ambarella的H2系列的Soc编码能力很强,最高可达4kp60,捕捉上没有用ambarella开发板推荐的几个捕捉卡 ...
- tp5--开启与关闭调试模式
https://www.cnblogs.com/finalanddistance/p/8906000.html TP5 显示错误信息 在TP5中,我们运行的代码有错误无法执行时,只显示页面错误,而 ...
- php class 访问控制
属性(attribute ) 必须声明访问控制类型 类型: public 公用 protected 受保护的 private 私有的 public 类型的属性 可以在外部访问 protected 及 ...
- ajax轮询思路
以我个人理解 ,ajax短轮询就是用定时器,定时请求数据库,然后把有用的数据做处理 ajax长轮询恩 就是在 ajax回调函数,继续调用ajax请求
- XSS跨站脚本攻击学习笔记(pikachu)
颓废了几天,该好好努力了. XSS概述 XSS漏洞是web漏洞中危害较大的漏洞,是一种发生在web前端的漏洞,所以危害的对象也主要是前端用户,XSS可以用来进行钓鱼攻击,前端js挖矿,获取用户cook ...
- [Inno Setup] 字符串列表,当要处理一长串文件时很有用
https://wiki.freepascal.org/TStringList-TStrings_Tutorial TStringList-TStrings Tutorial │ Deutsch (d ...
- 查看现有的 cipher suite
openssl ciphers [-v] [-ssl2] [-ssl3] [-tls1] [cipherlist]
- ERC20 Short Address Attack
ERC20 Short Address Attack 什么是ERC20 Application Binary Interface(ABI) ERC20 Short Address Attack 开始攻 ...
- UVA10599:Robots(II)(最长上升子序列)
Your company provides robots that can be used to pick up litter from fields after sporting events an ...
- JAVA连接Excel最好用的开源项目EasyExcel,官方使用文档及.jar包下载
EasyExcel是一个基于Java的简单.省内存的读写Excel的开源项目.在尽可能节约内存的情况下支持读写百M的Excel. github地址:https://github.com/alibaba ...