登录页面图:

           

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实现简单的登录功能的更多相关文章

  1. 使用 NodeJS+Express+MySQL 实现简单的增删改查

    关于node.js暂时记录如下,以后有时间一定学习 文章来自简书,作者:sprint,2016-07 使用 Node.js + Express+MySQL 实现简单的增删改查 https://www. ...

  2. spring Boot 简单的登录功能,利用了jdbcTemplate.class完成sql语句的执行,无需service层、dao层和.xml文件

    1.搭建SpringBoot项目首先我们先在IDEA上创建一个SpringBoot的Web项目(1)file ——> new ——> project——> Spring Initia ...

  3. Node+Express+MySql实现简单增删改查和登录

    var express = require('express'); var mysql = require('mysql'); var app = express(); var bodyParser ...

  4. JSP+MySQL最简单的登录和注册的实现 --Java Web温习

    一.开发环境 开发工具:eclipse 2018-09 操作系统:win10 二.实现 1.目录结构: 2.数据库(创建tmp数据库,新建user表,user表结构如下) 3.功能简介 功能比较简单, ...

  5. 利用Express+MySQL进行简单的增删改查

    前言: 随着JavaScript语言的快速发展,其功能越来越强大,能做的事情也越来越多. 目前,web前端工程师能够利用NodeJS搭建服务,也成为了越来越多互联网公司对前端开发的硬性要求. 本文主要 ...

  6. Nodejs&express+mongodb完成简单用户登录(即Nodejs入门)

    刚了解nodejs,发现nodejs配置起来不复杂,但也有很多需要注意的地方,今天就记录一下,以后也可拿出来看看. 要完成这个简单的示例,从零开始,走三步就行了. 一.搭建开发环境 二.创建项目(ex ...

  7. 应用node+express+mysql 实现简单的增删改查

    记录下来备忘 1.准备好webstrom编辑器,编辑器调整字体大小等在file->settings->editor下设置 注册码 来源网上: 2017.2.27更新 选择“license ...

  8. JavaSwing+Mysql实现简单的登录界面+用户是否存在验证

    原生Java+mysql登录验证 client login.java 功能:实现登录页面,与服务端传来的数据验证 package LoginRegister; import java.awt.Cont ...

  9. servlet实现简单的登录功能

    1.登录页面 Login.html <%@page contentType="text/html" pageEncoding="UTF-8"%> & ...

随机推荐

  1. 为什么redis是单线程的以及为什么这么快?

    官网的说法 我们先来认真看一下官网的说法.翻译过来大意如下: CPU并不是您使用Redis的瓶颈,因为通常Redis要么受内存限制,要么受网络限制.例如,使用在一般Linux系统上运行的流水线Redi ...

  2. [Batch 脚本] 批量生成文件夹

    @echo off echo start set time=30000 echo %time% for /l %%i in (1,1, %time%) do ( echo %%i% md " ...

  3. 一篇文章带你编写10种语言HelloWorld

    0,编程语言排行榜 计算机编程语言众多,世界上大概有600 多种编程语言,但是流行的也就几十种.我们来看下编程语言排行榜,下面介绍两种语言排行榜. Ⅰ TIOBE 指数 该指数每月更新一次,它监控了近 ...

  4. 快速上手最新的 Vue CLI 3

    翻译:疯狂的技术宅 原文:blog.logrocket.com/getting-sta- 概要:本文将指导你快速上手 Vue CLI 3,包括最新的用户图形界面和即时原型制作功能的使用步骤. 介绍 尤 ...

  5. springmvc @ResponseBody HttpMediaTypeNotAcceptableException

    2019独角兽企业重金招聘Python工程师标准>>> [ERROR]org.springframework.web.HttpMediaTypeNotAcceptableExcept ...

  6. 谈谈JavaScript中的变量、指针和引用

    1.变量 我们可能产生这样一个疑问:编程语言中的变量到底是什么意思呢? 事实上,当我们定义了一个变量a时,就是在存储器中指定了一组存储单元,并将这组存储单元命名为a.变量a的值实际上描述的是这组存储单 ...

  7. ajax学习摘抄笔记

    2019独角兽企业重金招聘Python工程师标准>>> AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). A ...

  8. IEEE 754标准--维基百科

    IEEE二进制浮点数算术标准(IEEE 754) 是20世纪80年代以来最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用.这个标准定义了表示浮点数的格式(包括负零-0)与反常值(denorm ...

  9. Mybatis时间范围查询,亲测有效

    Md2All export document .output_wrapper pre code{font-family: Consolas, Inconsolata, Courier, monospa ...

  10. Nginx读书笔记三----资源分配

    1.内存及磁盘资源分配 1.1 在磁盘中存储HTTP请求体 语法: client_body_in_file_only on|clean|off; 默认: client_body_in_file_onl ...