启动一个HTTP服务器
var http = require('http');
var server = http.createServer();
//绑定一个request事件,on()函数用来绑定事件
server.on('request',function(res,rso){//当服务端收到请求的时候 node会调用function函数
//res包含这个请求事件包含的所有信息
//rso包含回应给这个事件的信息
if(res.method == 'GET'){
console.log('GET请求');
}else if(res.method == 'POST'){
console.log('POST请求');
}
rso.end();
});
server.listen(8000,function(){
console.log('请打开浏览器访问:127.0.0.1:8000');
});
发送中文
由于需要在数据包的头部信息指定用哪种信息解码方式,所以需在Header里设置utf-8
var http = require('http');
var server = http.createServer();
//绑定一个request事件,on()函数用来绑定事件
server.on('request',function(res,rso){
rso.setHeader('Content-type','text/plain;charset=utf-8');//设置header
rso.write('嘻嘻嘻');
rso.end();
});
server.listen(8000,function(){
console.log('请打开浏览器访问:127.0.0.1:8000');
});
响应一个完整的html页面
ps:
rso.end('ndasio');
与下面两行代码等价
rso.write('ndasio');
rso.end();
例子响应html:
例1:
var http = require('http');
var server = http.createServer();
//绑定一个request事件,on()函数用来绑定事件
server.on('request',function(res,rso){
rso.setHeader('Content-type','text/html;charset=utf-8');//设置header 注意设置成了text/html
rso.end('<h1>啦啦啦</h1>');
});
server.listen(8000,function(){
console.log('请打开浏览器访问:127.0.0.1:8000');
});
例2:(通过fs模块将本地html读入)
var fs = require('fs');
var http = require('http');
var server = http.createServer();
//绑定一个request事件,on()函数用来绑定事件
server.on('request',function(res,rso){
rso.setHeader('Content-type','text/html;charset=utf-8');//设置header 注意设置成了text/html
fs.readFile('./index.html','utf8',function(err,data){
rso.end(data);
})
});
server.listen(8000,function(){
console.log('请打开浏览器访问:127.0.0.1:8000');
});
响应一张图片
首先在html代码里面插入一张图片
由于每次读取一张图片都是对服务器单独的一次请求事件,所以在node里面需要添加对于图片请求的响应代码
var fs = require('fs');
var http = require('http');
var server = http.createServer();
//绑定一个request事件,on()函数用来绑定事件
server.on('request',function(res,rso){
var urls = res.url;
if(urls == '/'){//一般第一次请求的url都是/
rso.setHeader('Content-type','text/html;charset=utf-8');
fs.readFile('./index.html','utf8',function(err,data){
rso.end(data);//响应第一次请求,返回html页面
}else{
fs.readFile('.'+urls,function(err,data){//'.'+urls为图片路径
rso.end(data);//客户端收到html页面后发起获取图片的第二次请求后 node返回图片的处理代码
})
}
});
server.listen(8000,function(){
console.log('请打开浏览器访问:127.0.0.1:8000');
});
响应其他静态资源
和响应图片的代码没有变,一模一样,因为url处
var fs = require('fs');
var http = require('http');
var server = http.createServer();
//绑定一个request事件,on()函数用来绑定事件
server.on('request',function(res,rso){
var urls = res.url;
if(urls == '/'){//一般第一次请求的url都是/
rso.setHeader('Content-type','text/html;charset=utf-8');
fs.readFile('./index.html','utf8',function(err,data){
rso.end(data);//响应第一次请求,返回html页面
}else{
//响应一切html需要的静态资源
fs.readFile('.'+urls,function(err,data){
rso.end(data);
})
}
});
server.listen(8000,function(){
console.log('请打开浏览器访问:127.0.0.1:8000');
});