nodejs之——核心模块http

启动一个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');
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值