HTTP服务器
超文本转移协议 (HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。
在nodejs中可以很方便的搭建一个HTTP服务器
var http=require('http');
var server=http.createServer(function(req,res){ //request---一个用户的请求 response--服务器对用户的相应
})
server.listen(9000,'localhost',function(){
console.log('服务器开始监听')
server.close();
})
server.on('close',function(){
console.log('服务器被关闭了')
})
以下是运用的案例:
var http=require('http');
var mysql=require('mysql');var pool=mysql.createPool({
host:'127.0.0.1',
port:3306,
database:'test',
user:'root',
password:'ds123456',
connectionLimit:20
});
var sqlR="insert into register set?";
var sqlL="select count(*) AS count from register where userName=? and userPwd=?";
var sqlS="select * from register where userId=? or userName=? or userEmail=?";
var querystring=require('querystring');//查询字符串
var server=http.createServer(function(req,res){
if((req.url)=='/register'){
req.on('data',function(data){
//输出形式为对象数组
//console.log(querystring.parse(decodeURIComponent(data)));
var queryR=querystring.parse(decodeURIComponent(data));
pool.query(sqlR,{userName:queryR.name,userPwd:queryR.pwd,userGender:queryR.gender,userEmail:queryR.email,
userPhone:queryR.phone,userAge:queryR.age},function(err,result){
if(err){console.log(err);}
else{
console.log('register sucess!');
res.end('register sucess');
}
});
});
}
if((req.url)=='/login'){
req.on('data',function(data){
var queryL=querystring.parse(decodeURIComponent(data));
pool.query(sqlL,[queryL.name,queryL.pwd],function(err,result){
if(err){console.log(err);}
else if(result[0].count==0){
console.log('login faile');
res.end('login faile');
}
else{
console.log('login sucess!');
res.end('login sucess');
}
});
});
}
if((req.url)=='/select'){
req.on('data',function(data){
var queryS=querystring.parse(decodeURIComponent(data));
pool.query(sqlS,[queryS.name,queryS.name,queryS.name],function(err,result){
if(err){console.log(err);}
else{
console.log(result);
res.end('select success');
}
});
});
}
});
server.listen(9000,'127.0.0.1',function(){
console.log('我开始监听了');
})