node中http模块基础知识

http模块:

var http = require('http');
//开启一个服务器,这是一个异步函数。事实上node中基本所有函数都是异步的。
var server = http.createServer(function (req, res){
   //req表示request就是用户的请求
   //res表示response就是服务器的响应
  console.log('创建服务器成功')
  res.end("Hello World");
});
server.listen(8080, '127.0.0.1');
console.log('Server running on port 8080.');
执行node 1.js,‘创建服务器成功’并没有在控制台输出

当访问http://localhost:8080/时,页面显示Hello World,控制台的结果:


Node.js没有根目录,他不用建设在任何服务器软件之上

var http = require('http');
//引入模块fs,这个模块可以读取服务器上硬盘上的文件,写入文件等
var fs = require("fs");
//开启一个服务器,这是一个异步函数。事实上node中基本所有函数都是异步的。
var server = http.createServer(function (req, res){
	//fs模块有一个方法叫做readFile,可以异步读取文件内容
	//这个函数是一个异步函数,所以读到的内容,通过回调函数返回
	//系统会自动帮我们注入两个参数,第一个实参是错误信息,如果没有错误
	//第二个实参就是文件的内容
	fs.readFile("./pages/index.html",function(err,data){
		//读取的是信息流,是Buffer缓冲的二进制的东西,调用toString()
		console.log(data.toString());
	});
	//req表示request就是用户的请求
	//res表示response就是服务器的响应
  console.log('创建服务器成功')
  res.end("Hello World");
});
server.listen(8080, '127.0.0.1');
console.log('Server running on port 8080.');

var http = require('http');
//引入模块fs,这个模块可以读取服务器上硬盘上的文件,写入文件等
var fs = require("fs");
//开启一个服务器,这是一个异步函数。事实上node中基本所有函数都是异步的。
var server = http.createServer(function (req, res){
	//fs模块有一个方法叫做readFile,可以异步读取文件内容
	//这个函数是一个异步函数,所以读到的内容,通过回调函数返回
	//系统会自动帮我们注入两个参数,第一个实参是错误信息,如果没有错误
	//第二个实参就是文件的内容
	fs.readFile("./pages/index.html",function(err,data){
		//读取的是信息流,是Buffer缓冲的二进制的东西,调用toString()
		res.end(data.toString());
	});
});
server.listen(8080, '127.0.0.1');
console.log('Server running on port 8080.');
访问http://127.0.0.1:8080/显示的页面是:


但是index.html在F:\mynode\pages路径下,访问http://127.0.0.1:8080/中并没有相关的路径信息,所以说Node.js没有根目录。

现在Node.js监听8080端口上所有路径,http://127.0.0.1:8080/...后面写任何东西都能得到index.html的页面
 

var http = require('http');
var fs = require("fs");
var server = http.createServer(function (req, res){
	console.log(req.url);
	res.end("hello");
});
server.listen(8080, '127.0.0.1');
console.log('Server running on port 8080.');
req.url表示请求的路径:

访问http://127.0.0.1:8080/abc,


浏览器每次发起请求,都会同时请求一次favicon.ico

index.html内容:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
	<style>
       .box{
       	width: 200px;
       	height: 200px;
       	background-color: red;
       }
        </style>
	<title></title>
	</head>
	<body>
<div class="box"></div>
	</body>
</html>
index2.html内容:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
	<style>
       .box{
       	width: 200px;
       	height: 200px;
       	background-color: yellow;
       }
        </style>
	<title></title>
	</head>
	<body>
<div class="box"></div>
	</body>
</html>

var http = require('http');
var fs = require("fs");
var server = http.createServer(function (req, res){
	//设置UTF-8
	res.setHeader("Content-Type","text/html;charset=UTF-8");
	//req表示用户的访问信息,url属性表示访问路径
	//写一个顶层路由,就是根据用户访问了什么做不同的事情
	switch(req.url){
		case "/a" :
		   fs.readFile("./pages/index.html",function(err,data){
		   	res.end(data.toString());
		   });
		    break;
		case "/b" :
		fs.readFile("./pages/index2.html",function(err,data){
		   	res.end(data.toString());
		   });
		    break;
		default :
		res.end("对不起,不存在该页面")
		    break;
	}
});
server.listen(8080, '127.0.0.1');
console.log('Server running on port 8080.');
http://127.0.0.1:8080/a



http://127.0.0.1:8080/b


http://127.0.0.1:8080/c


网页中插入图片:虽然图片和index.html在同一个文件夹下,但是图片的src写的是路由地址,而不是物理地址。


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<style>
	       .box{
	       	width: 200px;
	       	height: 200px;
	       	background-color: red;
	       }
        </style>
		<title></title>
	</head>
	<body>
         <div class="box"></div>
         <img src="pic1.jpg"/>
	</body>
</html>

var http = require('http');
var fs = require("fs");
var server = http.createServer(function (req, res){
	//设置UTF-8
	res.setHeader("Content-Type","text/html;charset=UTF-8");
	//req表示用户的访问信息,url属性表示访问路径
	//写一个顶层路由,就是根据用户访问了什么做不同的事情
	switch(req.url){
		case "/a" :
		   fs.readFile("./pages/index.html",function(err,data){
		   	res.end(data.toString());
		   });
		    break;
		case "/b" :
		fs.readFile("./pages/index2.html",function(err,data){
		   	res.end(data.toString());
		   });
		    break;
		    case "/pic1.jpg" :
		   fs.readFile("./pages/animal.jpg",function(err,data){
		   	//图片不需要toString()
			res.setHeader("Content-Type","image/jpg")
		   	res.end(data);
		   });
		    break;
		default :
		res.end("对不起,不存在该页面")
		    break;
	}
});
server.listen(8080, '127.0.0.1');
console.log('Server running on port 8080.');




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值