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"%> & ...
随机推荐
- Python玩转人工智能最火框架 TensorFlow应用实践 学习 教程
随着 TensorFlow 在研究及产品中的应用日益广泛,很多开发者及研究者都希望能深入学习这一深度学习框架.而在昨天机器之心发起的框架投票中,2144 位参与者中有 1441 位都在使用 Tenso ...
- CHIL-SQL-DELETE 语句
DELETE 语句 DELETE 语句用于删除表中的行. 语法 DELETE FROM 表名称 WHERE 列名称 = 值 Person: LastName FirstName Address Cit ...
- 《LabVIEW 虚拟仪器程序设计从入门到精通(第二版)》一1.3 小结
本节书摘来自异步社区<LabVIEW 虚拟仪器程序设计从入门到精通(第二版)>一书中的第1章,第1.3节,作者 林静 , 林振宇 , 郑福仁,更多章节内容可以访问云栖社区"异步社 ...
- 使用CXF开发Web Service服务
1.使用CXF开发Web Service服务端 1.1 开发一个Web Service业务接口,该接口要用@WebService修饰 (1)创建一个Java项目MyServer (2)在MyServe ...
- Hyperf基础教程
前提说明 本教程适用于新手.老手,也适用于任何操作系统,包括Windows.linux.MacOS 介绍 Hyperf 是基于 Swoole 4.4+ 实现的高性能.高灵活性的 PHP 协程框架,内置 ...
- codeforce 1311 D. Three Integers
In one move, you can add +1 or −1 to any of these integers (i.e. increase or decrease any number by ...
- CF1328E Tree Queries
CF1328E Tree Queries 应该还是比较妙的 题意 给你一个树,然后多次询问 每次询问给出一堆节点,问你是否能找到一个从根出发的链,是的对于给出的每个节点,都能找出链上的点,是的他们的距 ...
- Fiddler 弱网测试
1.设置上传下载速率 在Fiddler Script选项中查找uploaded,找到设置网络上传和下载设置值 分析一下这几行代码: 首先来判断 m_SimulateModem 是否为 true,也就是 ...
- 简单使用媒体查询@media
@media 可以针对不同的屏幕尺寸设置不同的样式,特别是如果你需要设置设计响应式的页面,@media 是非常有用的. 那媒体查询该如何使用呢? 一.铺垫 1.首先我们在使用 @media 的时候需要 ...
- spring类型转换
如果表单提交的时候,有的字段是字符串类型,但是后台接收到的时候是其他类型(比如日期类型),我们就可以使用类型转换来把字符串类型转换为需要的类型.当字符串类型和后台的日期类型匹配的时候,也可以不做转换, ...