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;//默认登录是失败的
//进行用户名和密码的判断 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);
for(var i = 0; i