node中http模块基础知识

来源:互联网 发布:php文件下载 编辑:程序博客网 时间:2024/05/21 10:27

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-8res.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-8res.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.');




原创粉丝点击