EfonMark

一番码客 : 挖掘你关心的亮点。
http://www.efonmark.com

本文目录:

[TOC]

image-20200227231837462

概述

Nodejs里的http模块,封装了http serverclient的功能,就是说可以充当server处理请求,也可以充当client发出请求。

创建server对象

  • http.createServer

例子(一)

  • 创建服务,设置端口,向请求者返回一个对象。
1
'use strict'
2
let http = require('http');
3
let fs = require('fs');
4
5
//创建Server
6
let server = http.createServer( (req, res)=>{
7
   console.log(req.url);
8
   res.writeHead(200, {"content-type": "application/json;charset=utf-8"});
9
   let person = {
10
       name: "一番码客",
11
       tag: "实用小工具"
12
   };
13
   res.end(JSON.stringify(person))
14
});
15
server.listen(4000);
  • 效果:

image-20200227233254997

  • favicon.ico,便是网站的图标。
  • 返回的对象是json格式,需要用application/json去声明。

例子(二)

  • 返回子路径页面
1
'use strict'
2
let http = require('http');
3
let fs = require('fs');
4
5
//创建Server
6
let server = http.createServer( (req, res)=>{
7
   console.log(req.url);
8
   res.writeHead(200, {"content-type": "text/html;charset=utf-8"});
9
   if(req.url === '/a'){
10
       let html = fs.readFileSync('a.html');
11
       res.end(html);
12
   }else if(req.url ==='/b'){
13
       let html = fs.readFileSync('b.html');
14
       res.end(html);
15
   }else if(req.url ==='/'){
16
       let html = fs.readFileSync('index.html');
17
       res.end(html);
18
   }
19
});
20
server.listen(4000);
  • 效果:

image-20200227233701073

  • 返回的对象是html格式,需要用text/html去声明。

client的功能

  • http.get

例子

1
http.get("http://www.baidu.com/", res=>{
2
    let data = ''
3
    res.on('data', (chunk)=>{
4
        data += chunk.toString();
5
    });
6
    res.on('end', ()=>{
7
        console.log(data);
8
    })
9
});
  • 效果:

image-20200227234749024

  • res本质上是一个reader对象(参考stream操作大文件),可以监听data事件来拿数据。

参考

学习视频

一番同步了对应的学习视频到B站,长按识别可访问一番B站主页观看。

image-20200128162909013

一番雾语:简单运用http,没有那么深不可测。


免费知识星球:一番码客-积累交流
微信公众号:一番码客
微信:Efon-fighting
网站:http://www.efonmark.com

蜀ICP备19039940号

总访问量为