HTTP请求和响应的处理

本文详细讲解了HTTP请求与响应的处理,包括GET和POST参数的获取方式,以及路由的概念。同时深入探讨了Node.js的异步编程,如同步API、异步API、回调地狱及其解决方案。此外,还介绍了Node服务器端编程的基本步骤,以及如何使用Express框架搭建Web服务器。
摘要由CSDN通过智能技术生成

目录

一、HTTP请求和响应的处理

1、get请求参数的处理

(1)get参数是放在浏览器的地址栏中发送的(即请求参数和url绑在一起)

(2)get参数的获取方式

2、post请求参数的处理

(1)post请求参数放在请求体中,而不是放在url中

(2)post参数的获取方式

3、路由

(1)路由是指客户端请求地址与服务器端程序代码的对应关系。

(2)静态资源的访问

二、Node.js异步编程(API)

1.同步API

2.异步API

3.回调地狱

4.回调地狱的解决方法

 (1)创建Promise构造函数的实例对象

 (2)什么时候用?

5.异步函数

三、Node服务器端编程:

1、导入http模块

2、创建http服务器对象

3、给服务器对象注册(绑定)request事件

4、开启端口监听

四、Node框架

1、框架:半成品,开发人员按照框架的规范(要求)进行不同配置就可以实现不同的需求

2、Node的常用框架:Express、Koa、egg

五、Express框架

1、简介

2、在vscode中安装Express

(1)npm init -y   --生成package.json文件

(2)npm install express --save

3、使用Express搭建Web服务器

(1)引入express模块;

(2)调用express()方法创建服务器对象app;

(3)调用get()方法定义GET路由;

(4)调用listen()方法监听端口


一、HTTP请求和响应的处理

1、get请求参数的处理

(1)get参数是放在浏览器的地址栏中发送的(即请求参数和url绑在一起)

(2)get参数的获取方式

a、通过请求对象(req)的url属性获取客户端请求的URL(req.url)

b、使用Node的内置模块url对请求地址进行解析,获取请求参数

let { query,pathname } = url.parse(clientURL,true)

const url = require('url')
const http = require('http')
const app = http.createServer()

app.on('request',(req,res)=>{
    //1.获取客户端请求的url
    let clientURL = req.url
    console.log(clientURL);

    //2.解析url
    let{ query,pathname } = url.parse(clientURL,true)
    console.log('请求参数',query);
    console.log('请求路径',pathname);

    res.writeHead(200,{
        'content-type':'text/html;charset=utf8'
    })

    //3.对请求进行判断

    if(pathname=='index' || pathname=='/'){
        res.end('<h1>hello '+query.username+'</h1>')
    }else if(pathname == '/list'){
        res.end('<h1>list page</h1>')
    }else{
        res.end('<p>not found</p>')
    }
})


app.listen(3000)
console.log('服务器已启动,运行在3000端口上...');

2、post请求参数的处理

(1)post请求参数放在请求体中,而不是放在url中

(2)post参数的获取方式

a、导入Node的内置模块querystring,将post请求参数转换成对象

b、给请求对象(req)注册'data'事件,用于监听参数的传输,将传输的参数读取出来

c、给请求对象(req)注册'end'事件,用于监听参数传输完毕,该事件被触发表明参数传递完成就可以对参数进行处理

强调:关于querystring被弃用的解决办法

使用querystringify模块替代querystring模块。因为querystringify模块不是Node的内置模块,需要安装 npm install querystringify -g

3、路由

(1)路由是指客户端请求地址与服务器端程序代码的对应关系。

用户在浏览器地址栏中输入不同的请求地址,服务器端会为客户端响应不同的内容。

(2)静态资源的访问

a、静态资源:是指客户端向服务器端请求的资源,服务器端不需要处理,可以直接响应给客户端的资源。

b、静态资源的类型:CSS、JavaScript、image文件,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值