要求要求

了解Express框架

了解node.js常用模块:express,body-parser,mysql

了解express Router

了解HTML form表单

了解MySQL Server 及安装使用

了解SQLyog使用
了解Express框架了解node.js常用模块:express,body-parser,mysql了解express Router了解HTML form表单了解MySQL Server 及安装使用了解SQLyog使用环境环境

OS: Win10

Node.js: v12.19.0

Express: v4.17.1

Yarn: v1.22.10

使用VScode IDE

body-parser:1.19.0

mysql: 2.18.1

MySQL Server:5.7

SQLyog:V12.9
OS: Win10Node.js: v12.19.0Express: v4.17.1Yarn: v1.22.10使用VScode IDEbody-parser:1.19.0mysql: 2.18.1MySQL Server:5.7SQLyog:V12.9准备准备首先在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
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










登陆注册













注册



登录
















登陆注册













注册



登录





login.html










登陆注册








































































登陆注册





























































register.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;
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;Routerrouter/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;
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.jsdao/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;
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;
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
yarn add mysql运行index.js
cd src/ && node index.js
cd src/ && node index.js结果及演示浏览器看效果及整个过程。