JD页面
在百度网盘里面
node.js实现部分
1.加载http模块--包含http协议的所以内容
var http = require('http');
2.使用fs加载文件的模块
var fs = require('fs');
3.使用http模块创建服务
var server = http.createServer();
4.给服务设置监听,监听的端口号为8088
server.listen(8088,function(){
console.log('''Server is rining port 8088');
});
//加载mysql模块
var mysql = require('mysql');
5.编写逻辑
var handrequest = function(resquest,response){
//获取请求地址
request.url;
//将请求地址进行拆分这里指的是get请求,在输入框里面记得加name属性
var attstr = request.url.split('?');
var date = [];//存放查询的结果集
if(attstr.length == 2){
var url = attstr[0];//获取前面的部分login.do||....do
var right = attstr[1].split('&');//获取后面的部分 username=tubo&password = 123456;
//将获取到的right进行遍历 将遍历的结果存到date里面
for (var i = 0; i < right.length; i++) {
date[i] = r[i].split('=')[1];
}
//判断它是否是登录请求 url.indexof('login.do') != -1表示url存在login.do 进行语句块的工作
if(url.indexof('login.do') != -1){
//连接数据库 首先加载mysql模块
var connection = mysql.createConnection({
host:'localhost',//主机名
user:'root',//用户
password:'123456',//密码
port:'3306',//端口号
database:'web'//数据库名
});
//打开链接
connection.connect();
//编写sql并执行sql
var sql = 'select * from users where username = ? and password = ?'
//执行sql
connection.query(sql,date,function(err,result){
if(err){
console.log('select error',err.message);
return;//强制结束循环
}
var bool = false;//默认登录是失败的
//进行用户名和密码的判断
for(var i = 0; i<result.length;i++){
if(result[i].name = date[0] && result[i].pwd = date[1]){
console.log('suceeful');
bool = true;
}
}
//如果为true,就表明登录成功就跳转到首页
if(bool){
//设置响应类型
response.writeHeader(200,{
'Content-type': 'text/html';
})
//登录成功进行页面跳转,用fs读取文件
rs.readFile('路劲','utf8',function(err,data){
if(err){
return;
}
response.end(data);//将页面响应在客户端上
});
}
});
connection.end();
}else if(url.indexof('register.do') != -1){
//注册页面的操作 和上面基本一致,只是在插入数据的时候要新打开一个链接。
}
}else{
//如果是post或其他的图片等等
var url = attstr[0];
var url = url.substr(1);//加载没有/的文件
// /login.do
if(url.indexof('.do') != -1){
console.log('这是post请求或者是其他的')
}
//判断其类型,比如说 .html 、.img、.css、.js等等
var point = url.lastIndexof('.')//从点开始截取
var responseType = 'text/html';//设置默认的响应类型
var currentPath = url.substr(point+1);//截取后面的类型
switch(currentPath){
case 'html':
responseType = 'text/html';
break;
case 'css':
responseType = 'text/css';
break;
case 'js':
responseType = 'application/javascript';
break;
case 'jpg':
responseType = 'image/jpeg';
break;
case 'png':
responseType = 'image/png';
break;
case 'gif':
responseType = 'image/gif';
break;
case 'ico':
responseType = 'image/x-icon';
break;
}
//进行响应
response.writeHead(200, {
'Content-Type': responseType
});
//这里的URL是login.do,这就是为什么我们要把最初获得的url进行截取,目的是去掉前面的那一个\;
fs.readFile(url, function (err, data) {
if (err) {
throw err;
}
response.end(data);
});
}
}
6.设置触发事件的条件
//任何请求都会触发该事件
//语法:server.on('事件名称',事件逻辑);
server.on('request',handrequest);