node.js创建服务器,并解析不同数据

要点:

1.通过引入核心模块,来进行文件的读取和服务器的创建,并调用相应模块的API,进行想要的操作。

2.不同的文件类型进行不同的解析,主要通过Content-Type(多用途互联网邮件拓展)进行不同的定义,如html对应text/html,注意编码方式的声明,服务器默认是utf-8,但是浏览器编码方式是跟当前操作系统是一致的,win10中文操作系统是gbk编码方式,所以会造成乱码。

3.通过node启动服务器后,修改了被读取的文件,不需要重启服务器,因为他是动态读取文件的,通过之前建立的联系。

代码:

var http = require('http');
var fs = require('fs');
// 引入两个核心库

var server = http.createServer();

server.on('request',function(req,res){
	var url = req.url;
    // 获取输入的请求字符串url

    if(url === '/'){
    	//‘/’后是请求的路径

    	fs.readFile('./reource/halloword.html',function(err,data){
    		if(err){
    			res.setHeader('Content-Type','text/plain; charset=utf-8');
    			res.end('老哥,没读出来,是不是路径或者文件名写错了啊');
    		}else{
    			//data存取的是读取到的内容,是二进制的数据,通过toString转为字符串
    			//res.end()支持两种格式,二进制格式和字符串类型
    			res.setHeader('Content-Type','text/html; charset=utf-8');
    			// 注意和上面个text/plain的区别,通过text/html声明html类型文件
    			res.end(data);
    		}
    	});
    }else if(url === '/pushu'){
	    	fs.readFile('./reource/pushu.jpeg',function(err,data){
    		if(err){
    			res.setHeader('Content-Type','text/plain; charset=utf-8');
    			res.end('老哥,没读出来,是不是路径或者文件名写错了啊');
    		}else{
    			//data存取的是读取到的内容,是二进制的数据,通过toString转为字符串
    			//res.end()支持两种格式,二进制格式和字符串类型
    			res.setHeader('Content-Type','image/jpeg');
    			// 图片反而不能声明utf-8编码格式他有特定的编码格式
    			res.end(data);
    		}
    	});
	 }
});

server.listen(3000,function(){
	console.log('老哥,安排好了');
});

启动服务器;

在浏览器中请求效果:

猜你喜欢

转载自blog.csdn.net/qq_42036616/article/details/84640986
今日推荐