1, Node 静态页面的写法
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
window.onload= function(){
let oBtn = document.getElementById('btn')
let oUserName = document.getElementById('username')
let oPsw= document.getElementById('psw')
oBtn.onclick = function(){
let oUserText= oUserName.value;
let oPswText= oPsw.value
//发送 ajax 请求!
$.ajax({
url:'http://localhost:3000/reg',
data:{
'username':oUserText,
'password':oPswText
},
success: function(data){
alert('请求成功' + data)
},
error:function(data){
alert("请求失败: "+data)
}
})
}
}
</script>
</head>
<body>
<h1>欢迎来到主页!!</h1>
username:<input id="username" type = 'text'/> </br>
password:<input type="text" id="psw"></input> </br>
<input type="button" id="btn" value="提交">
</body>
</html>
2, index.js 写法
let http = require('http')
let fs = require('fs')
let url = require('url')
let mysql=require('mysql')
// 在这里就可以写注册的逻辑了!
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'root',
database : 'action'
});
connection.connect();
// 创建个 服务器
let server = http.createServer(function(req,res){
// 1, 拆解url
// es6 解构赋值
let {pathname,query} = url.parse(req.url,true);
let {username,password}= query;
console.log(pathname,username,password)
if(pathname=='/login'){
res.write('login')
res.end()
}else if(pathname=='/reg'){
console.log(username)
console.log(password)
// 1,校验 ,
var pattern = /\w{6,18}/i;
if(!pattern.test(username)){
res.write('用户名不符合必须是字母数字下划线, 并且是6-18位')
res.end();
}else if(!pattern.test(password)){
res.write('密码不符合规范并且是6-18位')
res.end();
}else {
// 去数据库里查找用户名是否存在,若存在也 返回信息
let sql = `select id from account where username='${username}';`
connection.query(sql,function(err,data){
if(err){
res.writeHeader(404)
res.write('数据库出错')
res.end();
}else{
if(data.length>0){
// 用户名已经存在:
res.write('username is exist!!')
res.end();
}else {
// 讲 用户插入到数据库中
let sql2 = `insert into account(username,password,islogin) values('${username}','${password}',1);`
console.log(sql2)
connection.query(sql2,function(err,data){
if(err){
res.writeHeader(404)
res.write('数据库出错')
res.end();
}else{
res.write('注册成功 ')
res.end();
}
})
}
}
})
}
}else if(pathname=='/index.html'){
//读取文件的操作:
fs.readFile('./public/index.html',function(err,data){
if(err){
//若 读取 文件失败,
res.writeHeader(404)
res.write('文件不存在')
res.end();
}else{
res.write(data.toString())
res.end();
}
})
}else if(pathname=='/jquery.js'){
fs.readFile('./public/jquery.js',function(err,data){
if(err){
//若 读取 文件失败,
res.writeHeader(404)
res.write('文件不存在')
res.end();
}else{
res.write(data.toString())
res.end();
}
})
}
});
// 监听3000 端口
server.listen(3000,function(){
console.log('connet success')
})
需要 注意 的 是,只要是静态页面 ,就 会走node 的逻辑, 比如那个jquery 引入,它也会走 node 路径,所以都要处理
所以在node 要处理静态 资源 ,它不 会自动引入,它 还是 需要找node ,可见 Node是个底层的 服务器
关于 用户的注册逻辑,逻辑比较简单,但是写起来稍微繁琐些,实际 上难度 不大,就 是 很繁琐
crud 就是很繁琐!!其实蛮无趣的!
好吧,这篇就写么多, 下一篇,再把注册写完,就基本 完成 了 !
不完成 ,就 没办法往下学习,因为
后面的 才是最有价值的 !!