18.3、mysql+node实现注册功能(接着18.1
)
经验:前端人员需要注意这个
需求
1.失焦时,查询电话号码是否存在,若存在,显示已被注册
2.当电话号码、密码、确认密码全部通过才能注册到数据库
步骤
1.给项目安装数据库
2.实现需求一
1.更改register.html为如下,这样才能提交数据过去
2.修改register.js
思路
:把前端输入的手机号码传到后端,后端拿这个值查询数据,若返回的是空数组
,则没注册,否者为注册了的
注意
result为数组 若长度为0,没有注册,长度不为0,为注册了
register.js
var express = require('express');var router = express.Router();/* GET users listing. */router.get('/', function(req, res, next) {res.render('register');});// 检测电话号码是否被注册router.post('/selectUser', function(req, res, next) {// console.log(req.body)//获取前端当前需要注册的用户名var username=req.body.usernameconsole.log(username)// 连接数据库查询该用户名是否已经存在// 引入mysqlvar mysql = require('mysql'); // 创建mysql的连接(配置连接数据库的基本信息)var connection = mysql.createConnection({host: 'localhost', user: 'root', password : 'root', //自己设置的密码 port: '3306', database: 'h5' //数据库名}); // 连接数据库connection.connect();var sql = 'SELECT * FROM user where username=?';var sqlparams=[username]//查connection.query(sql,sqlparams,function (err, result) {if(err) return console.log(err)// result为数组若长度为0,没有注册,长度不为0,为注册了// console.log(result)// res.send()发送数据到前端,只要后端有输出则为ajax请求成功的返回值if(result.length){// 注册了res.send('1')}else{//没注册res.send('2')}});connection.end();});module.exports = router;
此时效果图
3.实现需求二
为了全部正确才能跳转,在register.js中设置三个值全为false
接下来就是全部正确后通过ajax发送数据给后台,后台拿到值后写进数据库4.总结:
1)实现手机号通过,对应的flag为true的情况只能是在未被注册时
,而为false:不满足条件赋值为true
2)第二次密码不需要写正则,只判断是否与密码相等
3)实现手机号、密码、确认密码全部通过后点击注册才能有用更简单的写法
4)ajax请求和点击事件会冲突,即提交表单的时候用submit,不用ajax
18.4、mysql+node+express实现登录功能
前期准备安装了mysql node express
效果图
功能需求
点击登录后,如果输入的信息与数据库不匹配,不会跳转到登录成功界面,否者,跳转到登录成功页面
思路:再表单里面把手机号、密码传到后端,后端根据手机号查询数据库,然后比较传过去的密码和查出来的密码,若相同,渲染页面,否者,你输入的密码或者手机号错误
步骤
1.更改form表单的action和提交方式
2.因为action指向的/loginsuccess,所以需要再routes新建/loginsuccess,然后引入app.js,再app.js使用
3.先在loginsuccess.js里面写让页面渲染
var express = require('express');var router = express.Router();/* GET home page. */router.get('/', function(req, res, next) {res.render('loginsuccess');});router.post('/', function(req, res, next) {//res.render渲染页面res.render('loginsuccess')});module.exports = router;
4.上一步过后就可以连接数据库了,然后查找输入的手机号对应的密码,并比较两个密码,一样就渲染页面
总结
1)自己第一次写这个功能,经验不足,反应慢
2)ajax请求要在局部刷新的时候用,当有表单的时候,一般提交给action的路径,不要用ajax