Web前端高级工程师培训:使用 Node.js 构建一个 Web 服务端程序(1)

news/2024/10/18 19:28:41 标签: 前端, node.js

1-使用 Node.js 构建一个 Web 服务端程序

文章目录

  • 1-使用 Node.js 构建一个 Web 服务端程序
    • 1、Node.js的安装与基础语法
    • 2、Node.js 中的 JavaScript 与 浏览器中的 JavaScript
      • 2-1、Node.js 中的 JavaScript
      • 2-2、浏览器 中的 JavaScript
    • 3、什么是 WebServer(APP)?
    • 4、如何构建一个基于网络的应用程序?
    • 5、使用 Node.js 搭建一个 WebServer APP
      • 5-1、Node.js 中的 net 模块
      • 5-2、Node.js 中的 http 模块
        • 核心类
      • 5-3、使用 http.Server 类创建一个基于 http 协议的 webServer 对象
      • 5-4、主机与端口
      • 5-5、使用事件回调处理请求

1、Node.js的安装与基础语法

录播内容


2、Node.js 中的 JavaScript 与 浏览器中的 JavaScript

2-1、Node.js 中的 JavaScript

在这里插入图片描述

2-2、浏览器 中的 JavaScript

在这里插入图片描述

3、什么是 WebServer(APP)?

WebServer ,也称为 网页服务器 ,通俗来讲就是提供 网页浏览器服务的机器。

通常 Web资源 (html、css、js、images……)都会存放在一个指定的 服务器 中,然后通过特定的软件 (WebServer APP),如 Apache、Nginx、IIS…… ,来提供访问服务。

访问模式

首先由客户端(浏览器)发送一个请求,通过网络连接到提供 Web服务 的机器,WebServer APP 会监听到客户端请求,并根据请求作出处理,返回对应的资源。

4、如何构建一个基于网络的应用程序?

无论使用什么语言(C、C++、Java、Node.js……),只要具备调用底层网络 API 的能力,那么就能实现基于网络的应用程序。

作为服务端,主要通过监听指定的主机(IP)& 端口来获取请求的数据,然后根据具体的业务逻辑处理再通过网络返回数据。

作为客户端,就是通过网络发送请求数据,并通过网络获取到服务端返回的数据。

5、使用 Node.js 搭建一个 WebServer APP

5-1、Node.js 中的 net 模块

参考:https://nodejs.org/dist/latest-v15.x/docs/api/net.html

5-2、Node.js 中的 http 模块

参考:https://nodejs.org/dist/latest-v15.x/docs/api/http.html

该模块使用 net 模块实现了基于 http 协议的各种 API。

核心类

Agent

该对象用来管理和维护客户端连接的持久性和重用,应用于客户端应用程序中(类似如:浏览器、postman等)。

ClientRequest

创建一个客户端连接对象,实现请求逻辑,应用于客户端。

Server

创建一个服务端对象,用于监听、处理客户端的请求,应用于服务端应用中。

ServerResponse

提供服务端响应相关的各种 API,应用于服务端(如:设置响应头信息,返回响应数据等)。

IncomingMessage

提供获取来源(Server中来源于Client的请求,Client中来源于Server的响应)信息的各种 API,应用于服务端(如:获取客户端当前请求的方法、URL、头信息等)。

Others

除此之外,该模块还提供了许多应用中需要用到的各种 属性 (如:METHODS、STATUS_CODES、maxHeaderSize 等)和 方法 (如:createServer、request 等)。

5-3、使用 http.Server 类创建一个基于 http 协议的 webServer 对象

// #C5-3-1
// 使用 Node.js 内置 require 方法引入核心模块 -> http
const http = require('http');

// 创建一个 Server 对象
const server = new http.Server();

// 也可以使用 createServer 方法创建一个 Server 对象
const server = http.createServer();

http 模块源码参考:Node.js 源码参考:https://github.com/nodejs/node/blob/v15.14.0/lib/http.js

5-4、主机与端口

// #C5-4-1
const http = require('http');

const server = http.createServer();

// 指定当前 Server 需要监听的主机
server.listen(8888, '0.0.0.0');

参数

  • 第一个参数表示端口,如果省略或为0,讲默认分配一个未被使用的端口。
    • 端口取值范围:1-65535。
  • 第二个参数表示主机(IP),省略的时候,当 IPv6 可用时值为:'::' ,否则为 IPv4 的地址:'0.0.0.0'
    • '0.0.0.0' 表示主机所有可用的 IP。

参考:https://nodejs.org/dist/latest-v15.x/docs/api/http.html#http_server_listen

5-5、使用事件回调处理请求

// #C5-5-1

const http = require('http');

const server = http.createServer();

// 注册 request 事件回调函数,当有客户端连接请求被监听到的时候执行回调
server.on('request', () => {
  console.log(`有客户端请求`);
});

server.listen(8888, '0.0.0.0');

参考:https://nodejs.org/dist/latest-v15.x/docs/api/http.html#http_event_request


http://www.niftyadmin.cn/n/5711561.html

相关文章

Typescript中的Required,Partial,Pick,Omit辅助类型

1.定义一个类型 type User{ name?:string; age?:number; gender?:male|female } 以上定义的类型里面的属性都是非必填 2.使用Required将属性转为必填 type UserRequired Required<User>; 3.使用Partial将属性从必填转为非必填 type UserOptional Partial<UserReq…

【C语言】文件的读写,打开与关闭

文件的读写这个十分便利&#xff0c;可以在写文件时可以通过循环来批量操作多个文件。 首先&#xff0c;定义文件指针。 接着&#xff0c;给到相应的读、写、追加等权限。 再接着&#xff0c;操作文件内容。 最后&#xff0c;关闭文件。 #include <stdio.h> #include &l…

RT-Thread之STM32使用定时器实现输入捕获

前言 基于RT-Thread的STM32开发&#xff0c;配置使用定时器实现输入捕获。 比如配置特定通道捕获上升沿&#xff0c;该通道对应的引脚有上升沿信号输入&#xff0c;则触发捕获中断。 一、新建工程 二、工程配置 1、打开CubeMX 进行工程配置 2、时钟使用外部高速晶振 3、配置…

[新电脑整理工作]

git 安装python安装 工作需要同时安装py2,和py3,故用anconda 软件&#xff0c;下载并安装成功后 1、conda create -n py2 python2.7 conda cerete -n py3 python3.8 2、安装成功后用VScode直接切换不同环境就可以&#xff08;原本旧电脑就不可用&#xff0c;可能是vscode 版本有…

JCO发表加州大学团队最新医学AI研究,从常规HE染色切片预测同源重组缺陷和铂类药物反应|顶刊精析·24-10-18

小罗碎碎念 这篇文章是关于一项名为DeepHRD的深度学习平台的研究&#xff0c;该平台能够从常规的苏木精-伊红&#xff08;H&E&#xff09;染色组织切片中预测同源重组缺陷&#xff08;HRD&#xff09;和铂类药物反应。 作者角色姓名单位第一作者Erik N. Bergstrom加州大学圣…

如何建立自己的体育直播平台:现成源码搭建全流程揭秘

随着越来越多的用户选择在线观看体育赛事&#xff0c;搭建一个专业的足球赛事直播应用正变得愈加吸引人。利用现成的体育直播系统源码&#xff0c;如“东莞梦幻网络科技”提供的解决方案&#xff0c;创业者可以快速启动自己的平台。只要准备好必要的技术组件&#xff0c;您就能…

【Python 常用脚本及命令系列 7 -- pdf 文件字符搜索 python脚本实现】

> 请阅读【嵌入式及芯片开发学必备专栏】< 文章目录 pdf 文件字符搜索 python脚本实现说明 pdf 文件字符搜索 python脚本实现 要实现一个 Python 脚本来在指定目录中搜索 PDF 文件中的关键字&#xff0c;可以使用 PyPDF2 库来读取 PDF 文本&#xff0c;并结合 os 库来遍…

[笔记] 关于CreateProcessWithLogonW函数创建进程

函数介绍 https://learn.microsoft.com/zh-cn/windows/win32/api/winbase/nf-winbase-createprocesswithlogonw BOOL CreateProcessWithLogonW([in] LPCWSTR lpUsername,[in, optional] LPCWSTR lpDomain,[in] …