【node】Node.js的常用内置模块:

文章目录

        • 一、os模块:
            • 【1】常用的OS模块方法包括:
            • 【2】案例:
        • 二、path模块:
            • 【1】常用的path模块方法包括:
            • 【2】案例:
        • 三、url模块:
            • 【1】常用的url模块方法包括:
            • 【2】案例:
        • 四、fs模块:
            • 【1】常用的fs模块方法包括:
            • 【2】案例:
        • 五、http模块:
            • 【1】创建web服务器:
            • 【2】静态资源服务器:
            • 【3】get数据获取:
            • 【4】post数据获取:


一、os模块:

OS模块是Node.js的内置模块,用于与操作系统进行交互。通过OS模块,可以获取操作系统的相关,如操作系统的类型、架构、平台、CPU核心数等。
Node.js的常用内置模块_nodejs内置模块-CSDN博客

【1】常用的OS模块方法包括:
  1. os.platform():返回操作系统的平台,如’win32、'darwin’等。
  2. os.arch():返回操作系统的架构,如’x64’、'arm’等。
  3. os.type():返回操作系统的类型,如’Linux’、Windows_NT’、'Darwin’等。
  4. os.release():返回操作系统的版本。
  5. os.hostname():返回主机名。
  6. os.cpus():返回一个包含有关每个逻辑CPU内核的信息的对象数组,如型号、速度、时间等。
  7. os.totalmem():返回系统的总内存量,以字节为单位。
  8. os.freemem():返回系统的可用内存量,以字节为单位。
    10.os.EOL:返回操作系统的换行符,可能的值有 ‘\n’ 或 '\r\n’。
    11.os.constants:返回一些操作系统相关的常量,比如错误码、信号码等。
    12.os.endianness():返回 CPU 的字节序,可能的值有 ‘BE’ 或 'LE’。
    13.os.getPriority():返回指定进程的调度优先级。
    14.os.homedir():返回当前用户的主目录路径。
    15.os.loadavg():返回一个包含系统平均负载的数组。
    16.os.networkInterfaces():返回一个包含网络接口的信息的对象,比如地址、掩码、MAC 地址等
    17.os.setPriority():设置指定进程的调度优先级。
    18.os.tmpdir():返回操作系统的默认临时文件目录。
    19.os.uptime():返回系统的正常运行时间(以秒为单位)。
    20.os.userInfo():返回当前用户的信息,比如用户名、用户 ID、主目录、shell 等。
    21.os.version():返回操作系统的版本。
【2】案例:

二、path模块:

前端中的path模块是一个用于处理文件路径的模块,主要用于解析和操作文件路径。

【1】常用的path模块方法包括:
  1. path.join([…paths]) 用于拼接路径,将传入的路径片段拼接成一个完整的路径。
  2. path.resolve([…paths]) 用于将相对路径转换成绝对路径。
  3. path.basename(path[, ext]) 用于获取文件路径的最后一部分,即文件名。
  4. path.dirname(path) 用于获取文件路径的目录部分。
  5. path.extname(path) 用于获取文件路径的扩展名。
  6. path.parse(path) 用于解析文件路径,返回一个包含文件路径信息的对象。
  7. path.normalize(path) 用于规范化文件路径,去除多余的斜杠、解析相对路径等。
【2】案例:

三、url模块:

url模块提供了一些实用函数,用于URL处理与解析。

【1】常用的url模块方法包括:
  1. url.parse(urlString) //字符串类型解析成对象
    2.url.format(urlObject) //对象类型转字符串
  2. url.resolve(from,to) //路径拼接
【2】案例:

(1)在Node.js中,可以使用内置的模块url来处理URL相关的操作。以下是使用url模块的一个示例:

const url = require('url');
// 解析URL
const urlString = 'https://www.example.com/path?param1=value1&param2=value2';
const parsedUrl = url.parse(urlString, true);
console.log(parsedUrl);

// 构建URL
const parsedUrlObject = {
  protocol: 'https:',
  host: 'www.example.com',
  pathname: '/path',
  query: {param1: 'value1',param2: 'value2'}
};
const constructedUrl = url.format(parsedUrlObject);
console.log(constructedUrl);

这个示例中,首先使用`url.parse()`方法解析了一个URL字符串,并将其转换为一个对象。
`url.parse()`方法的第二个参数设置为`true`,表示将查询参数解析为一个对象。
然后,使用`url.format()`方法将一个URL对象转换为字符串。
这个方法可以接受一个包含URL各个部分的对象,并返回一个完整的URL字符串。

(2)需要注意的是,url模块在Node.js的最新版本中已被废弃,推荐使用URL类和URLSearchParams类来进行URL相关的操作。以下是上述示例的使用URL类和URLSearchParams类的版本:

const { URL, URLSearchParams } = require('url');
// 解析URL
const urlString = 'https://www.example.com/path?param1=value1&param2=value2';
const parsedUrl = new URL(urlString);
console.log(parsedUrl);

// 构建URL
const constructedUrl = new URL('https://www.example.com');
constructedUrl.pathname = '/path';
constructedUrl.search = new URLSearchParams({param1: 'value1',param2: 'value2'}).toString();
console.log(constructedUrl.toString());

这个版本使用了`URL`类来解析和构建URL,并使用`URLSearchParams`类来处理查询参数。
`URLSearchParams`类提供了一些方便的方法来操作查询参数,如`set()``get()``append()`等。

四、fs模块:

在Node.js中,fs模块是用于处理文件系统操作的核心模块。它提供了一系列的方法,可以进行文件的读取、写入、删除等操作。
NodeJs-fs模块_nodejs fs模块-CSDN博客

【1】常用的fs模块方法包括:

1.fs.writeFile(目录,内容,err回调):写入内容(异步写入)
2.fs.writeFileSync(同步写入)
3.fs.appendFile(目录,内容,err回调):在文件尾部追加内容(异步追加写入)
4.fs.appendFileSync(同步追加写入)
5.fs.createWriteStream(流式写入)
6.fs.readFile(文件路径,字符串,读取内容回调):读取文件
7.fs.existsSync():判断文件是否存在
8.fs.stat(‘目标文件或者文件夹’ ,(err,stat)=>{
console.log(stat.isFile()); //是否文件
console.log(stat.isDirectory()); //是否是目录
console.log(stat.size); //128字节
}):判断文件是否是文件或着文件夹
9.fs.unlink(目录,错误回调):删除文件

【2】案例:





五、http模块:

在Node.js中,http模块是一个核心模块,用于创建HTTP服务器和客户端。可以使用http模块来处理HTTP请求和响应。

【1】创建web服务器:
//http 搭建应用服务的
//1.引入http
var http = require('http')
//2.创建一个server
var server = http.createServer()
//3.监听请求
server.on('request',(req,res)=>{
    console.log(req.url); //接口名
    console.log(req.method); //请求类型 get post
    console.log(req.headers); //请求头信息
    //请求头 json字符串  默认值   form表单 res.writeHead()方法设置响应头
    res.setHeader('content-type', 'text/html;charset=utf-8') 
    // res.statusCode = 304 //状态码 res.end()方法发送响应数据
    res.end('hello boy') //返回内容
})
//4.启动服务
server.listen(8080,()=>{
    console.log('服务已经启动');
})

【2】静态资源服务器:

静态资源:常见的有html、css、js、图片、音频、视频等。
静态资源服务器:专门保存上述静态资源的服务器,称之为静态资源服务器。
实现思路:客户端请求的每个资源uri地址,作为在本机服务器指定目录中的文件。通过相关模块进行读取文件中数据进行响应给客户端,从而实现静态服务器。

// 导入公共模块
var http = require('http');
var fs = require('fs');
var path = require('path');
// 创建server服务
var server = http.createServer();
// 监听请求
server.on('request',(req,res) =>{
    // 利用path模块拼接路径
    var filepath = path.join('public',req.url);
    // 利用fs模块判定有没有该文件
    var b = fs.existsSync(filepath);
    if(b){
        fs.readFile(filepath,(err,data) =>{
            res.end(data);
        })
    }else{
        res.end('404,文件飞走了')
    }
 
})
 
server.listen(8080,()=>{
    console.log('服务器启动了');
})

【3】get数据获取:

get数据通过地址栏使用query方式进行传递的数据 例**?id=1&name=zhangsan**

var http = require('http')
var url =require('url')
var server = http.createServer()
server.on('request',(req,res)=>{
    const { query } =  url.parse(req.url,true) //获取get参数
    console.log(query);
   
    res.end('hello')
 
})
server.listen(8080)

【4】post数据获取:

表单数据多数为post进行提交到服务器端。需要监听req对象的data事件(接收请求提交过来的数据的)来获取客户端发送到服务器的数据。如果数据量比较大,无法一次性发送完毕,则客户端会把数据切割后分批次发送给服务器。所以data事件可能会被触发多次,每次触发data事件时,收到的数据只是全部数据的一部分,因此需要做数据的拼接才能得到完整的数据。

var http = require('http')
var querystring = require('querystring')
var server = http.createServer()
server.on('request',(req,res)=>{
    //post接收参数  第一步监听data事件
    var arr = []
    req.on('data',buffer=>{
        arr.push(buffer)
    })
    req.on('end',()=>{
      var params = querystring.parse(Buffer.concat(arr).toString()) 
      console.log(params);
    })
    res.end('hello')
 
})
server.listen(8080)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/372828.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode--代码详解 2.两数相加

2.两数相加 题目 难度:中等 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数…

数字孪生:智慧城市的核心技术与发展

一、引言 随着城市化进程的加速,智慧城市的概念和实践逐渐成为全球关注的焦点。智慧城市利用先进的信息通信技术,提升城市治理水平,改善市民的生活质量。而数字孪生作为智慧城市的核心技术,为城市管理、规划、应急响应等方面提供…

【数据分享】1929-2023年全球站点的逐日平均能见度(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、湿度等指标,说到常用的降水数据,最详细的降水数据是具体到气象监测站点的降水数据! 有关气象指标的监测站点数据,之前我们分享过1929-2023年全…

[Angular 基础] - 数据绑定(databinding)

[Angular 基础] - 数据绑定(databinding) 上篇笔记,关于 Angular 的渲染过程及组件的创建&简单学习:[Angular 基础] - Angular 渲染过程 & 组件的创建 Angular 之中的 databinding 是一个相对而言更加复杂,以及我个人觉得相对而言比…

《MySQL》超详细笔记

目录 基本知识 主流数据库 数据库基本概念 MySQL启动 数据库基本命令 数据库 启动数据库 显示数据库 创建数据库 删除数据库 使用数据库 查询当前数据库信息 显示数据库中的表 导入数据库脚本 表 查看表的结构 查看创建某个表的SQL语句 数据库的查询命令 查询…

设计模式学习笔记(一):基本概念;UML

文章目录 参考面向对象的设计原则创建型模式结构型模式行为型模式 UML视图图(Diagram)模型元素(Model Element)通用机制类之间的关系关联关系复杂!!聚合关系组合关系 依赖关系泛化关系接口与实现关系 参考 https://github.com/fa…

OpenCV/C++:点线面相关计算(二)

接续,继续更新 OpenCV/C:点线面相关计算_线面相交的点 代码计算-CSDN博客文章浏览阅读1.6k次,点赞2次,收藏12次。OpenCV处理点线面的常用操作_线面相交的点 代码计算https://blog.csdn.net/cd_yourheart/article/details/125626239 目录 1、…

Micro micro controller一览

https://www.microchip.com.cn/, Microchip中文网站 https://www.microchip.com.cn/newcommunity/index.php?mSearch&adosearch&moduleDownload&keyworddsPIC33&p3 Microcontrollers and microProcessors dsPIC33 Digital Signal Controllers (D…

假期刷题打卡--Day24

1、MT1198阶乘差 求1!-2!-3!-…-n! 格式 输入格式: 输入为整型 输出格式: 输出为整型 样例 1 输入: 5输出: -151 分析过程 看到这个题目的时候,感觉这个题目出现的没有必要,就和前面阶乘和一样的…

MySQL数据库练习【一】

MySQL数据库练习【一】 一、建库建表-数据准备二、习题2.1. 查询部门编号为30的部门的员工详细信息2.2.查询从事clerk工作的员工的编号、姓名以及其部门号2.3.查询奖金多于基本工资的员工的信息、查询奖金小于基本工资的员工的信息2.4.查询奖金多于基本工资60%的员工的信息2.5.…

transformers重要组件(模型与分词器)

1、模型: from transformers import AutoModelcheckpoint "distilbert-base-uncased-finetuned-sst-2-english" model AutoModel.from_pretrained(checkpoint) 除了像之前使用 AutoModel 根据 checkpoint 自动加载模型以外,我们也可以直接…

算法学习——LeetCode力扣哈希表篇2

算法学习——LeetCode力扣哈希表篇2 454. 四数相加 II 454. 四数相加 II - 力扣(LeetCode) 描述 给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足: 0 …

细说开源软件的影响力分析

开源软件的影响力分析 一、开源软件如何推动技术创新 开源软件以其开放源代码的特性,极大地推动了全球软件技术的创新和发展。这种开放性不仅使得开发者能够自由地查看、修改和使用源代码,还促进了全球开发者之间的深度协作和交流。 1.1 促进全球协作&…

【数据分享】1929-2023年全球站点的逐月平均能见度(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、能见度等指标,说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 之前我们分享过1929-2023年全球气象站点的逐月平均气温数据、逐月最高气温数据…

二叉树(4)——二叉树链式结构的实现和递归思想(2)

有了昨天的铺垫,今天就很简单了。先把昨天二叉树的代码复制一下,今天还要用。 代码: typedef int datatype; typedef struct BinaryTree {datatype _data;struct BinaryTree* _left;struct BinaryTree* _right; }BT;BT* CreatNode(datatype…

分享63个节日PPT,总有一款适合您

分享63个节日PPT,总有一款适合您 63个节日PPT下载链接:https://pan.baidu.com/s/1kZeiN06KbevtSCs5vXm6oA?pwd6666 提取码:6666 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不易…

宝塔+php+ssh+vscode+虚拟机 远程调试

远程(虚拟机)宝塔 安装扩展 配置文件添加,zend_extension看你虚拟机的具体位置 [Xdebug] zend_extension/www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/xdebug.so xdebug.modedebug xdebug.start_with_requesttrigger xdebug.client_host&quo…

windows+vscode配置远程Linux开发环境

1.Linux运行sshd服务 安装openssh-server sudo apt install openssh-server 开启服务 sudo service ssh start 检查sshd是否开启 sudo ps -aux | grep sshd 2.vscode上安装RemoteDevelopment插件 其他依赖性会自动安装 3.配置远程Linux主机信息 Linux主机ip 4.在vscode…

用 Delphi 程序调用 Python 代码画曲线图

用 Python 的库画图 Python 代码如下: import matplotlib.pyplot as pltsquares [1, 4, 9, 16, 25]; plt.plot(squares); plt.grid(True) # 网格线 plt.show(); # 这句话会弹出个窗口出来,里面是上述数据的曲线。 把以上代码,放进 PyS…

5分钟掌握接口自动化测试,4个知识点简单易学!

一. 什么是接口测试 接口测试是一种软件测试方法,用于验证不同软件组件之间的通信接口是否按预期工作。在接口测试中,测试人员会发送请求并检查接收到的响应,以确保接口在不同场景下都能正常工作。 就工具而言,常见的测试工具有…