在了解这篇之前,您的电脑环境一定要配置node的环境,使用node命令可以搭建一个简单的服务器。
这是登录页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>get请求</h1>
<form action="http://localhost:3000/login" method="get">
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="提交">
</form>
<hr />
<h1>post请求</h1>
<form action="http://localhost:3000/login" method="post">
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
这是工具类,可以根据url请求文件获取完整的编码格式,当然是mime格式
- mime.json文件自行下载或者可以参照官方文档或者百度编写
const path = require('path');
const fs = require('fs');
const mime = require('./mime.json');
exports.staticServer = (req,res,root)=>{
fs.readFile(path.join(root,req.url),(err,fileContent)=>{
if(err){
res.writeHead(404,{
'Content-Type':'text/plain;charset=utf8'
});
res.end('服务器已经搬家了,请联系管理员.....');
}else{
let dtype='text/html';
let ext = path.extname(req.url);
if(mime[ext]){
dtype = mime[ext];
}
if(dtype.startsWith('text')){
dtype+=';charset=utf8';
}
res.writeHead(200,{
'content-Type':dtype
});
res.end(fileContent);
}
})
}
服务器入口文件
const http = require('http');
const url = require('url');
const querystring = require('querystring');
const ss = require('./serverTools.js');
http.createServer((req,res)=>{
if(req.url.startsWith('/www')){
ss.staticServer(req,res,__dirname);
}else if(req.url.startsWith('/login')){
if(req.method=='GET'){
let param = url.parse(req.url,true).query;
if(param.username=='admin' && param.password=='123'){
res.end('get 登录成功');
}else{
res.end('get 登录失败');
}
}
if(req.method=='POST'){
let pdata='';
req.on('data',(chunk)=>{
pdata += chunk;
});
req.on('end',()=>{
let obj = querystring.parse(pdata);
if(obj.username='admin' && 'password'=='123'){
res.end('post 登录成功');
}else{
res.end('post 登录成功');
}
})
}
}
console.log(req.url);
}).listen(3000,()=>{
console.log('success running......');
})
测试案例:
http://localhost:3000/www/index.html http://localhost:3000/www/logo.png http://localhost:3000/www/login.html
|