Node.js服务器端开发

本文深入探讨Node.js服务器开发,包括创建服务器的步骤、HTTP请求和响应处理、异步编程。介绍了get和post请求的区别,以及如何处理get请求参数、post请求参数和路由。此外,还讲解了Node.js中的异步API、回调地狱及其解决方案。
摘要由CSDN通过智能技术生成

创建nodejs服务器的步骤:

1、导入http模块

2、创建http服务器对象
3、给服务器对象注册(绑定)request事件
        (1)对不同请求方式进行处理
        (2)路由:对不同的请求路径进行处理
        (3)处理请求参数
        (4)给客户端发送响应信息
        app.on('request',(req,res)=>{   
        })
4、开启端口监听

我们今天就按照这个步骤来学习nodejs服务器的知识。

一、NodeJS服务器开发

1、学习服务器开发的目的

  • 可以和后端程序员进行紧密的配合
  • 让业务前置
  • 扩展知识面

2、服务器的主要工作

  • 实现项目的业务逻辑
  • 实现数据的增删改查(CRUD)  

3、使用Node创建服务器示例

  • 引入http模块
  • 创建服务器对象
  • 定义请求和响应
  • 监听端口号    本地机的域名:localhost       本地机的IP地址:127.0.0.1
//1、引入http模块
const http= require('http');
//2、创建Web服务器对象
const  app=http.createServer()
//3、定义请求和响应
/* 
回调函数中的参数
req(request):表示请求对象,存放了客户端的所有请求信息 
res(respone):表示响应对象,服务器端通过该对象向客户端发送响应信息
*/
app.on('request',(req,res)=>{
    res.end('Hello Word')
    res.writeHead(200,{
        // 'content-type':'text/plain'//相应信息是纯文本格式
        'content-type':'text/html;charset=utf8'//相应信息是纯文本格式
    })
});
//4、监听端口号:指定服务器所使用的端口号
app.listen(8080)//监听3000端口
console.log('服务器已启动,监听8080端口,请访问localhost:8080');
//127.0.0.1  本地机的IP地址

4、http协议   

HTTP(Hyper Text Transfer Protocol)超文本传输协议

  • HTTP协议规定了如何从网站服务器传输超文本到本地浏览器
  • HTTP协议基于客户端服务器架构工作,是客户端(用户)和服务器端(网站)请求和应答的标准
  • HTTP协议可以使浏览器更加高效,使网络传输减少
  • HTTP协议不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

5、关于http请求和响应

  • 请求消息:客户端向服务器端发送请求时所携带的数据块
  • 响应消息:服务器端响应客户端请求时所携带的数据块
  • 客户端向服务器端发送请求的类型

⭐get请求:在浏览器的地址栏直接输入请求地址或在页面使用超链接(a标签)发起的请求,默认都是 get请求
⭐post请求:在<form>标签的method属性中指定为post时,请求方式就是post

get请求 :

post请求:

  •  get请求和post请求的区别

⭐get请求的参数是通过URL进行传递。post请求的参数包含在请求体中
⭐get请求不安全,不能用来传输敏感信息;post请求相对比较安全
⭐get请求在url中传递的参数是有长度限制的(不同的浏览器限制的长度不同),post请求对长度 没有限制
⭐get请求参数会被完整的保留在浏览器的历史记录中;post请求参数不会再浏览器中保留
⭐get请求使用url编码(百分号编码);post请求支持多种编码方式。
⭐get请求在浏览器中可以被主动缓存(cache);post请求不会
⭐get请求在浏览器回退时是无害的;post请求在浏览器回退时会再次向服务器提交数据
⭐get请求时浏览器会把请求头(http header)和数据(data)一起发送出去;
⭐post请求时浏览器会先发送请求头(http header),服务器响应后(状态码100),浏览器会再次发送数据(data),服务器器会给客户端返回状态码200   

  • 服务器收到用不同请求方式发送的请求时,如何分开处理(服务器如何区分get请求和post请求)通过对请求对象(request)的method属性进行判断,来获取用户的请求方式

♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥服务器端代码

//1、引入http模块
const http= require('http');
const { homedir, hostname } = require('os');
//2、创建Web服务器对象
const  app=http.createServer()
//3、定义请求和响应
/* 
回调函数中的参数
req(request):表示请求对象,存放了客户端的所有请求信息 
res(respone):表示响应对象,服务器端通过该对象向客户端发送响应信息
*/
app.on('request',(req,res)=>{
    if(req.method == 'POST'){
        res.end('post')
    }else if(req.method == 'GET'){
        res.end('get')
    }
    console.log('请求方式:',req.method);
    console.log(req.headers['host']);
    //设置响应头信息
    res.writeHead(200,{
        // 'content-type':'text/plain'//相应信息是纯文本格式
        'content-type':'text/html;charset=utf8'//相应信息是纯文本格式

    })
    res.end('<h1>你好我是服务器端</h1>')//end()方法:断开与客户端的联系同时向客户端发送信息
});
//4、监听端口号:指定服务器所使用的端口号
app.listen(8080)//监听3000端口
console.log('服务器已启动,监听8080端口,请访问localhost:8080');
//127.0.0.1  本地机的IP地址

♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥♥HTML页面(使用get请求) 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="http://localhost:8080" method="get">
        <label>
            用户名:
            <input type="text" name="username">
        </label>
        <br><br>
        <labe
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值