1. 程式人生 > 其它 >Node登入註冊頁面介面的開發----學習筆記(四)

Node登入註冊頁面介面的開發----學習筆記(四)

技術標籤:Node

結合之前所學,開發登入註冊介面

完整的登入註冊頁面的開發

html頁面
login.html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script src="jquery.js"></script>
	</head>
	<body>
			<p>使用者名稱:<input type="text"
id="username" /></p> <p>密碼:<input type="password" id="password" /></p> <button id="login">登入</button> <button id="reg">註冊</button> <script> $('#login').click(function(){ $.ajax
({ url:'/login', type:'get', data: { username:$('#username').val(), password:$('#password').val() }, dataType:'json', success:function(res){ if(res.err){ alert(res.msg) }else{ alert('登入成功!') location.
href = "http://www.baidu.com" } } }); }) $('#reg').click(function(){ $.ajax({ url:'/reg', type:'post', data: { username:$('#username').val(), password:$('#password').val() }, dataType:'json', success:function(res){ if(res.err){ alert(res.msg) }else{ alert('註冊成功!') } } }); }) </script> </body> </html>

後臺介面的開發 app.js

const http = require('http');
const url = require('url');
const querystring = require('querystring')
const fs = require('fs')

let user = {
	admin:123456
}

http.createServer((req,res)=>{
	let path,get,post;
	if(req.method =='GET'){   
		let {pathname,query} = url.parse(req.url,true)
		path = pathname
		get = query
		
		complete()
		
	}else if(req.method == 'POST'){   
		let arr = []
		path = req.url
		req.on('data',buffer=>{
			arr.push(buffer)
		})
		req.on('end',()=>{
		    // 獲取請求的引數 
			post=querystring.parse(Buffer.concat(arr).toString())
			complete()
		})
	}
	
	function complete(){
		if(path =='/login'){    // 登入介面
			res.writeHead(200,{     // 設定返回的資料格式為utf-8
				"Content-Type":"text/plain;charset=utf-8"
			})
			
			let {username,password} = get;
			if(!user[username]){
				res.end(JSON.stringify({
					err:1,
					msg:'使用者不存在'
				}))
			}else if(user[username] != password){
				res.end(JSON.stringify({
					err:1,
					msg:'密碼錯誤'
				}))
			}else if(user[username] == password){
				res.end(JSON.stringify({
					err:0,
					msg:'登入成功'
				}))
			}
			
		}else if(path == '/reg'){     // 註冊介面
			res.writeHead(200,{
				"Content-Type":"text/plain;charset=utf-8"
			})
			let {username,password} = post;
			if(user[username]){
				res.end(JSON.stringify({
					err:1,
					msg:'賬戶已存在!'
				}))
			}else{
				user[username] = password;
				res.end(JSON.stringify({
					err:0,
					msg:'註冊成功'
				}))
			}
		}else{      // 讀取檔案並返回檔案,在瀏覽器端開啟html檔案
			fs.readFile(`.${path}`,(err,data)=>{
				if(err){
					res.end('404')
				}else{
					res.end(data)
				}
			})		
		}
	}
}).listen(8080)

啟動服務,再在瀏覽器端開啟地址http://localhost:8080/login.html