时间:2021-05-26
要求
环境
准备
首先在Win10上安装Mysql,一路Next就行。安装完成使用SQLyog连接MySQL Server。连接成功需要创建数据库和数据表
Schema:
CREATE TABLE user (username char(20) NOT NULL,password char(20) NOT NULL,email char(30) DEFAULT NULL,address char(20) DEFAULT NULL,phonenumber char(20) DEFAULT NULL,logintime int(20) DEFAULT NULL,id int(20) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id),KEY username (username)) ENGINE=InnoDB DEFAULT CHARSET=utf8实战
前端
3个page, login.html, register.html.
index.html
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <title>登陆注册</title> <link rel="stylesheet" type="text/css" href="/stylesheets/style.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" /> </head> <body> <a href="./register.html" rel="external nofollow" >注册</a> <a href="./login.html" rel="external nofollow" >登录</a> </body> </head></html>login.html
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <title>登陆注册</title> <link rel="stylesheet" type="text/css" href="/stylesheets/style.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" /> </head> <body> <form action="/login" method="GET" > <label for="">账号:</label> <input name="user" type="text" placeholder="请输入账号"> <br> <label for="">密码:</label> <input type="password" name="password" placeholder="请输入密码"> <br> <input type="submit" value="登录"> </form> </body> </head></html>register.html
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <title>登陆注册</title> <link rel="stylesheet" type="text/css" href="/stylesheets/style.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" /> </head> <body> <form action="/register" method="POST"> <label for="">账号:</label> <input name="user" type="text" placeholder="请输入账号"> <br> <label for="">密码:</label> <input name="psw" type="password" placeholder="请输入密码"> <br> <label for="">重复密码:</label> <input name="pswa" type="password" placeholder="请重复密码"> <br> <input type="submit" value="注册"> </form> </body> </head></html>后端 server.js
var express = require("express");var bodyParser = require("body-parser");var router = require("./routers");var app = express();app.use(bodyParser.urlencoded({ extended: true }));app.use(express.static('public'));app.use('/', router);module.exports = app;Router
router/index.js, 调用封装好的数据库接口:queryUer, addUser
const express=require("express");const dao = require("../dao/db");const router=express.Router();router.get("/login", function(req,res){ console.dir(req.query); try{ dao.queryUser({username:req.query.user},function(err,record){ if(err){ console.log(err); throw error; } console.log(record); if(record && record.password == req.query.password){ res.send(`${req.query.user}:登陆成功`); }else{ res.send(`${req.query.user}:登陆失败,检查登陆信息是否正确`); } }); } catch(error){ console.log(error); res.send(`${req.body.user}: 登陆失败`); } })router.post("/register", function(req,res){ console.dir(req.body); try{ if(req.body.psw == req.body.pswa){ dao.addUser({username:req.body.user,password:req.body.psw}); res.send(`${req.body.user}: 注册成功`); } else { console.log(error); res.send(`${req.body.user}: 注册失败:,检查登陆信息是否正确`); } } catch(error){ console.log(error); res.send(`${req.body.user}: 注册失败`); } })module.exports = router;数据库接口db.js
dao/db.js
var mysqlClient= require("./mysql");function addUser (userInfo,callabck){ console.log("addUser:"+ userInfo); var sql= `insert into user(username,password) values('${userInfo.username}','${userInfo.password}')`; console.log("sql:"+ sql); mysqlClient(sql,function(err,rows){ if(err){ console.log("err:"+err); callabck(err,null); } else{ console.log("addUser result:"); console.log(rows); callabck(null,rows); } })}function queryUser (userInfo,callabck){ console.log("queryUser:"+ userInfo); var sql= `select * from user where username='${userInfo.username}'`; console.log("sql:"+ sql); mysqlClient(sql, function(err,rows){ if(err){ console.log("err:"+err); callabck(err,null); } else{ rows && rows.length>0 ? callabck(null,rows[0]): callabck(null,null); } })}exports.addUser = addUser;exports.queryUser = queryUser;dao/mysql.js
const mysql = require("mysql");const pool = mysql.createPool({ host:"localhost", user:"root", password:"*****", database:"test"});function query(sql,callback){ pool.getConnection(function(err,connection){ if(err){ callback(err,null); return } connection.query(sql, function (err,rows) { callback(err,rows); connection.release(); }); });}module.exports = query;mysql module
yarn add mysql运行index.js
cd src/ && node index.js结果及演示
浏览器看效果及整个过程。
到此这篇关于Node.js利用Express实现用户注册登陆功能的文章就介绍到这了,更多相关Node.js用户注册登陆内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
实现前后分离,即Node.js作为中间层,利用Express开发企业网站。用户访问企业网站的门户时,服务端进行判定且响应。如果页面需要动态型的数据,Node会把
本文实例为大家分享了Node.js实现用户登录注册的具体代码,供大家参考,具体内容如下IDE:WebStorm工程目录:数据库表Login.js:/***Cre
安装express$npminstallexpress--save在node.js中,我们最常用的框架就是expressExpress是一个基于Node.js平
本文实例讲述了php+mysql实现用户注册登陆的方法。分享给大家供大家参考。具体分析如下:这是一款利用php与mysql数据库实现的用户注册与登录代码,功能也
最近在学习node.js,做了一个练手项目,使用node.js+express框架,配合mysql数据库和前端vue框架开发一个多人文档编辑系统。node.js