日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Node简单服务器开发

發布時間:2023/12/2 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Node简单服务器开发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

運用的知識:http,fs,get,post

接口定義:
/user?act=reg$user=aaa&pass=bbb
后臺返回格式:{"ok":false,"msg":"原因"}
/user?act=login$user=aaa&pass=bbb
后臺返回格式:{"ok":true,"msg":"原因"}

前端訪問:
對文件的訪問:
http://localhost:8080/1.html
http://localhost:8080/ajax.js
http://localhost:8080/1.jpg

對接口的訪問:
http://localhost:8080/user?act=reg$user=aaa&pass=bbb

服務器(后端代碼):
const http = require("http");
const querystring = require("querystring");
const fs = require("fs");
const urlLib = require("url");

var users = {}; //定義用戶json,比如{“blue”:“123456”,“zhangsan”:“666666”}

var server = http.createServer(function(req,res){
var str = "";
req.on("data",function(data){
str += str;
});
req.on("end",function(){
var obj = urlLib.parse(req.url,true);
const url = obj.pathname;
const GET = obj.query;
const POST = querystring.parse(str);

//區分一下前端到底訪問接口還是文件
if (url == '/user') { //訪問接口
switch (GET.act){
case 'reg':
//檢查前端傳過來的參數用戶名是否已經有了
if (users[GET.user]) {
res.write('{"ok":false,"msg":"此用戶已存在"}')
} else{
//有的話往users里面插入
users[GET.user] = GET.pass;
res.write('{"ok":true,"msg":"注冊成功"}');
}
break;
case '/login':
//檢查用戶是否存在
if (users[GET.user]==null) {
res.write('{"ok":false,"msg":"用戶不存在"}');
} else if(users[GET.user]!=GET.pass){
//檢查用戶密碼是否正確
res.write('{"ok":false,"msg":"密碼不對"}');
}else{
res.write('{"ok":true,"msg":"登錄成功"}');
}
break;
default:
res.write('{"ok":false,"msg":"未知的act"}');

}
res.end();
} else{ //訪問文件
//讀取文件
var file_name = "./www"+url;
fs.readFile(file_name,function(err,data){
if (err) {
res.write("404");
} else{
res.write(data);
}
res.end();
});
}
});
}).listen(8081);

前端代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="ajax.js" ></script>
<script>
window.οnlοad=function(){
var oTxtUser = document.getElementById("user");
var oTxtPass = document.getElementById("pass");
var oBtnReg = document.getElementById("reg_btn");
var oBtnLogin = document.getElementById("login_btn");

//注冊按鈕事件
oBtnReg.onclick = function(){
ajax({
url:'/user', //這里是接口的名字
data:{act:'reg', user:oTxtUser.value, pass:oTxtPass.value},//這里是傳遞過去的參數
type:'get',
success:function(str){
var json = eval('('+str+')');
if (json.ok) {
alert("注冊成功");
} else{
alert("注冊失敗:" + json.msg);
}
},
error:function(){
alert("通信錯誤")
}
});
}


//登錄按鈕事件
oBtnLogin.onclick = function(){
ajax({
url:'/user', //這里是接口的名字
data:{act:'reg', user:oTxtUser.value, pass:oTxtPass.value},//這里是傳遞過去的參數
type:'get',
success:function(str){
var json = eval('('+str+')');
if (json.ok) {
alert("登錄成功");
} else{
alert("登錄失敗:" + json.msg);
}
},
error:function(){
alert("通信錯誤")
}
});
}
}
</script>
</head>
<body>
用戶名: <input type="text" id="user"/><br />
密碼:<input type="password" id="pass"/><br />
<input type="button" id="reg_btn" value="注冊" />
<input type="button" id="login_btn" value="登錄" />
</body>
</html>

轉載于:https://www.cnblogs.com/fengyongxian/p/8900662.html

總結

以上是生活随笔為你收集整理的Node简单服务器开发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。