NodeJS的HTTP内置模块

附录:常用HTTP响应头和请求头信息对照表

  1. Node简介
  2. 第一个node程序
  3. module(模块系统)
  4. npm包管理器
  5. 模块系统优先级
  6. 认识http内置模块
  7. url内置模块
  8. path内置模块
  9. fs内置模块
  10. http模块服务端进阶
  11. http报文浅析
  12. url模块进阶
  13. path模块进阶
  14. querystring模块进阶
  15. 了解Buffer和Stream
  16. os模块
  17. Buffer模块
  18. Stream模块
  19. http模块客户端
  20. Cookie浅析

HTTP模块

常用方法:

http.createServer([requestListener])创建一个Web服务器

  • requestListener <Function>

该回调函数中包含两个参数,一个是request请求对象,一个是response响应对象。

该函数返回一个http.server对象。

server.listen([port][,hostname])监听Web服务器

request.url获取路由请求地址

response.writeHead(statusCode[,statusMessage][, headers]) 发送一个响应头给请求。 状态码是一个三位数的 HTTP 状态码,如 404。最后一个参数 headers 是响应头。 第二个参数 statusMessage 是可选的状态描述。我们也可以使用 response.setHeader 来完成响应头的设置。

  • statusCode <number>
  • ``statusMessage `
  • headers <Object>

response.write(chunk[,encoding][, callback])该方法会发送一块响应主体。

  • chunk <string>
  • ``encoding `
  • callback <Function>

response.end([data][,encoding][, callback]) 该方法会通知服务器,所有响应头和响应主体都已被发送,即服务器将其视为已完成。 每次响应都必须调用response.end() 方法。

  • data <string>

如果指定了 data,则相当于调用 response.write(data, encoding) 之后再调用 response.end(callback)。

  • encoding <string>
  • callback <Function>

常用Content-Type

文件类型对应Type
.gifimage/gif
.htmltext/html
.jpegimage/jpeg
.jpgimage/jpeg或application/x-jpg
.mp4video/mpeg4
.mpegvideo/mpg
.mp3audio/mp3
.jstext/javascript或application/x-javascript
.csstext/css
const http = require('http');
const fs = require('fs');
const ejs = require('ejs');

let server = http.createServer(function(request,response){
   let css = /^\/css\/[0-9A-Za-z-_]+\.css$/;
   let img = /^\/img\/[0-9A-Za-z-_]+\.jpg|.png$/;
   if(request.url === '/'){
       fs.readFile('./views/index.ejs',function(err,data){  
           fs.readdir('./public/img',function(err,files){
               let index = ejs.render(data.toString(),{img:files}); 
               response.writeHead(200,{'Content-Type':'text/html;charset=utf-8'});
               response.end(index);
           })
       });
   }else if(css.test(request.url)){
       fs.readFile('./public/css/main.css',function(err,data){
           response.writeHead(200,{'Content-Type':'text/css;charset=utf-8'});
           response.end(data);
       });
   }else if(img.test(request.url)){
       fs.readFile('./public' + request.url,function(err,data){
           response.writeHead(200,{'Content-Type':'image/jpg|img.png;charset=utf-8'});
           response.end(data);
       });
   }else{
       response.writeHead(404,{'Content-Type':'text/html;charset=utf-8'});
       response.end();
   }
});

server.listen(1000,'127.0.0.1');
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值