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

news2024/12/29 10:14:59

文章目录

        • 一、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)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Apache POI】百万级数据导出Excel,并含有折线等图表

需求概要 最近接到一个需求,概要来讲就是实现百万级数据导出Excel,并根据其中的数据项自动生成折线图等图表。经技术调研,针对内存、性能等要素,Apache POI此技术可完成此需求。 Apache POI是Apache软件基金会的开放源码函式库&am…

《教我兄弟学Android逆向15 xpose改机开发03-写一款自己的改机软件》

上一篇 《教我兄弟学Android逆向14 xpose改机开发02-改机代码基础编写》我带你熟悉了一下改机的流程,搭建了改机的基础代码,改机参数数据储存方面我们用的是SharedPreferences存储数据,界面方面写了一个一键新机的按钮,点一键新机的时候会随机生成imei数据存储到xml数据中,然后…

isctf---re

crackme 解压得到crackme.exe 运行得到flag babyRe 先猜e65537的rsa 先用Z3强行求出p、q,算出常规rsa中的phi,然后套用公式求出m exp #babyre wp from z3 import * import libnum from Crypto.Util.number import * p,q,cInts(p q c) S Solver() S…

【前端web入门第一天】02 HTML图片标签 超链接标签 音频标签 视频标签

文章目录: 1.HTML图片标签 1.1 图像标签-基本使用1.2 图像标签-属性1.3 路径 1.3.1 相对路径 1.3.2 绝对路径 2.超链接标签 3.音频标签 4.视频标签 1.HTML图片标签 1.1 图像标签-基本使用 作用:在网页中插入图片。 <img src"图片的URL">src用于指定图像…

前端框架---Vue2学习教程(上)

从HTML到现在一路跟过来的小伙伴们&#xff0c;坚持固然不容易&#xff0c;但我相信大家已经学到了不少&#xff0c;那么我们开始马不停蹄的进入前端的框架吧&#xff0c;下面讲的是Vue2&#xff0c;大家继续加油鸭&#xff01;&#xff01;&#xff01;&#xff01; Vue2 Vu…

遗传算法优化最大化效应的某些需求点可不配送的vrptw问题

标题&#xff1a;遗传算法优化最大化效应的某些需求点可不配送的vrptw问题 摘要&#xff1a; 在可不配送的车辆路径配送问题&#xff08;VRPTW&#xff09;中&#xff0c;我们面临着优化路径规划以最大化效用的挑战。本文提出了一种基于遗传算法的方法&#xff0c;旨在解决具…

【Shell实战案例面试题】输入网卡的名字,来输出网卡的IP

1.问题 参数后判断要加"" 名字为空时显示ip 2.分析 把本机的所有网卡名列出来&#xff0c;来引导用户输入 使用命令列出所有网卡信:ifconfig/ip a 设计一个函数&#xff0c;把网卡名作为参数&#xff0c;函数返回网卡的IP 在获取某个网卡IP时&#xff0c;考虑网…

Redis面试(三)

1.Redis报内存不足怎么处理 Redis内存不足的集中处理方式&#xff1a; 修改配置文件redis.cof的maxmemory参数&#xff0c;增加Redis的可用内存通过命令修改set maxmemory动态设置内存上限修改内存淘汰策略&#xff0c;及时释放内存使用Redis集群&#xff0c;及时进行扩容 2…

基于springboot的美发管理系统

文章目录 项目介绍主要功能截图&#xff1a;部分代码展示设计总结项目获取方式 &#x1f345; 作者主页&#xff1a;超级无敌暴龙战士塔塔开 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、 简历模板、学习资料、面试题库【关注我&#xff0c;都给你】 &…

让Unity迭代器性能提升5倍

最近在研究Unity il2cpp的代码生成和编译优化&#xff0c;结合之前遇到过的一个优化案例&#xff0c;给大家讲讲在Unity中迭代器相关代码生成的底层原理&#xff0c;以及在写代码过程中需要注意的一些特殊情况。 案例 首先我们来看一个非常简单的案例&#xff0c;代码如下&am…

3338 蓝桥杯 wyz的数组IV 简单

3338 蓝桥杯 wyz的数组IV 简单 //C风格解法1&#xff0c;通过率50% #include<bits/stdc.h>int main(){std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cout.tie(nullptr);int n; std::cin >> n;int ans 0;std::vector<int>a(n);for(auto &am…

Docker本地部署APITable结合内网穿透实现公网访问

文章目录 前言1. 部署APITable2. cpolar的安装和注册3. 配置APITable公网访问地址4. 固定APITable公网地址 前言 vika维格表作为新一代数据生产力平台&#xff0c;是一款面向 API 的智能多维表格。它将复杂的可视化数据库、电子表格、实时在线协同、低代码开发技术四合为一&am…

【C语言】socket编程接收问题

一、recv()函数接收到的返回值为0表示对端已经关闭 在TCP套接字编程中&#xff0c;通过recv()函数接收到的返回值为0通常表示对端已经关闭了套接字的发送部分。这是因为TCP是一个基于连接的协议&#xff0c;其中有定义明确的连接建立和终止流程&#xff1b;当对端调用close()或…

C语言指针进阶(1)(超详细)

前言&#xff1a; 指针其实就是地址&#xff0c;而凡是存储在内存中的值都会有属于自己的地址&#xff0c;指针指向地址&#xff0c;这样我们就能通过指针间接操作变量。我们在指针初阶中介绍了指针的基本概念&#xff1a;如指针大小、野指针问题、指针间的关系运算等&#xff…

Hugging Face创始人分享:企业如何在ChatGPT浪潮下实现战略布局

Hugging Face创始人兼首席执行官 Clem Delangue在IBM一年一度的 THINK大会中研讨了当前人工智能发展趋势&#xff0c;特别是ChatGPT模型以及其对行业的影响。他的演讲还涉及到一个关键的议题&#xff0c;在ChatGPT这样的通用模型出现后&#xff0c;企业如何在人工智能领域找到自…

自定义vue通用左侧菜单组件(未完善版本)

使用到的技术: vue3、pinia、view-ui-plus 实现的功能: 传入一个菜单数组数据,自动生成一个左侧菜单栏。菜单栏可以添加、删除、展开、重命名,拖动插入位置等。 效果预览: 代码: c-menu-wrap.vue <template><div class="main-container">&l…

【嵌入式学习】C++QT-Day3-C++基础

笔记 见我的博客&#xff1a;https://lingjun.life/wiki/EmbeddedNote/19Cpp 作业 设计一个Per类&#xff0c;类中包含私有成员:姓名、年龄、指针成员身高、体重&#xff0c;再设计一个Stu类&#xff0c;类中包含私有成员:成绩、Per类对象p1&#xff0c;设计这两个类的构造函…

当包容结构体遇见灵活的内存管理

&#x1f308;个人主页&#xff1a;小田爱学编程 &#x1f525; 系列专栏&#xff1a;c语言从基础到进阶 &#x1f3c6;&#x1f3c6;关注博主&#xff0c;随时获取更多关于c语言的优质内容&#xff01;&#x1f3c6;&#x1f3c6; &#x1f600;欢迎来到小田代码世界~ &#x…

课时7:shell基础_shell简介

1.3.1 shell简介 学习目标 这一节&#xff0c;我们从 运维、shell语言、小结 三个方面来学习。 运维 简介 运维是什么&#xff1f;所谓的运维&#xff0c;其实就是公司的内部项目当中的一个技术岗位而已&#xff0c;它主要做的是项目的维护性工作。它所涉及的内容范围非常…

方法、数组

方法 是语句的集合&#xff0c;在一起执行一个功能 它是解决一类问题的步骤的有序集合 包含于类或对象中 在程序中创建&#xff0c;在其他地方被引用 设计方法的原则&#xff1a;方法的本意是功能块&#xff0c;就是实现某一个功能的语句块的集合。设计时&#xff0c;最好保持…