课时56-课时60笔记.md

2018-11-06  本文已影响10人  九旬大爷的梦

课时56 http开篇

http 模块:
启动一个http服务:
代码:

//引入模块
let http = require("http");

//创建一个服务器
let server= http.createServer((request, response) => {
  response.writeHead(200, {"Content-Type": "text/html;charset=UTF-8"});
  response.end("Hello World");
});
//端口 监听
server.listen(8085, "127.0.0.1");

课时57 http路由上

Conten-type 对照表:http://tool.oschina.net/commons

/*
Node没有web容器
通过路由来判断返回的内容
Node.js中的url和物理文件并不是一一对应
*/

//引入模块
let http = require("http");

//创建一个服务器
let server= http.createServer((request, response) => {
console.log(request.url)
//输出请求的url 顶层路由设计
response.writeHead(200, {"Content-Type": "text/html;charset=UTF-8"});
response.write("<h1>123321</h1>");
response.end("Hello World");

});
//端口 监听
server.listen(8085, "127.0.0.1");

课时58 http路由中

通过路由设置返回内容
使用fs模块读取html 文件
判断每次访问的url决定返回的内容
缺点是麻烦
优点是可以隐藏真实的资源地址

//引入模块
let http = require("http");
let fs= require('fs');

//创建一个服务器
let server= http.createServer((request, response) => {
  var url= request.url;
  if(url === '/index.html'){
       fs.readFile('./index.html', (err,data)=>{
          if(!err){
            response.writeHead(200, {"Content-Type": "text/html;charset=UTF-8"});
            response.end(data)
          }else{
              throw err;
          }
       })
  }else if(url === '/about.html'){
    fs.readFile('./about.html', (err,data)=>{
        if(!err){
          response.writeHead(200, {"Content-Type": "text/html;charset=UTF-8"});
          response.end(data)
        }else{
            throw err;
        }
     })
  }else{
      response.end("<h2>404</h2>")
  }
  
});
//端口 监听 
server.listen(8085, "127.0.0.1");

课时59 http路由下

读取css/js资源、图片资源、视频资源、音频资源
读取资源时记得根据资源的不同 需更改 Content-Type 的格式


//引入模块
let http = require("http");
let fs= require('fs');

//创建一个服务器
let server= http.createServer((request, response) => {
  var url= request.url;
  if(url === '/index.html'){
       fs.readFile('./index.html', (err,data)=>{
          if(!err){
            response.writeHead(200, {"Content-Type": "text/html;charset=UTF-8"});
            response.end(data)
          }else{
              throw err;
          }
       })//加载css资源
  }else if(url === '/css/index.css'){
    fs.readFile('./css/index.css', (err,data)=>{
        if(!err){
          response.writeHead(200, {"Content-Type": "text/css;charset=UTF-8"});
          response.end(data)
        }else{
            throw err;
        }
     });//加赞图片资源
  }else if(url === '/source/1.jpg'){
      fs.readFile('./source/1.jpg', (err,data)=>{
        if(!err){
            response.writeHead(200, {"Content-Type": "application/x-jpg"})
            response.end(data)
        }else{
            throw err;
        }
      })
  }else{
      console.log('错误')
  }
  
});
//端口 监听 
server.listen(8085, "127.0.0.1");

课时60 HTTP-URL

101541488805_.pic.jpg

url 网址 模块
使用 url 对象 可以获取网址的每一段的具体内容
http://nodejs.cn/api/url.html

request.url 获取网址
url.parse(request.url) 解析url网址成对象形式

最常用的是使用 parse 他可以在http中使用 不必解析一个完整的url地址

需要解析一个完整的URL地址可以使用:

const { URL } = require('url');
const myURL =
  new URL('https://user:pass@sub.host.com:8080/p/a/t/h?query=string#hash');
let http= require('http');
let url= require('url');

let server= http.createServer((request, response)=>{
   let myURl= url.parse(request.url);
   console.log(myURl);//打印解析url 地址
   response.end("hello world")
});
server.listen(8085, '127.0.0.1')
上一篇 下一篇

猜你喜欢

热点阅读