【node.js】fs\path\http模块的使用 02

news2024/11/25 11:05:35

🥳博       主:初映CY的前说(前端领域)

🌞个人信条:想要变成得到,中间还有做到!

🤘本文核心:Node.js的fs\path\http模块的使用,模块化开发概念


目录

一、node.js概念与作用

1.概念:

2.作用:

二、模块发开发三大板块

1.模块化开发介绍

2.常见三大模块 

1.fs 读写模块

        writeFile()的使用

        writeFile()的使用

2.path 路径模块

3.http 搭建服务器模块



先上本文的核心图

一、node.js概念与作用

1.概念:

node.js 是一种 基于谷歌V8引擎 的 运行环境,V8是Google发布的开源JavaScript引擎,本身是用于Chrome浏览器的js解释部分

2.作用:

  1. 具有超强的高并发能力,能够实现高性能服务器
  2. Node 包管理工具(node package manager,NPM)提供了数十万个可重用的工具包。它还提供了一流的依赖解决方案,可实现自动化工具链构建。(说白了node就是便于我们模块化的开发,需要啥就导入啥进去,不需要把整个文件都导入到我们的文件中)

二、模块发开发三大板块

1.模块化开发介绍

把一个大文件拆分成很多个小文件,然后使用特定的语法组合在一起,这种开发方式叫做模块化开发

模块化开发有啥好处?

  • 按需引入,节省资源

  • 避免变量污染

  • 业务分离,便于维护

2.常见三大模块 

1.fs 读写模块

writeFile()的使用

①导入内置模块

const fs = require('fs')

②使用模块

第一个参数path : 文件路径

第一个参数encoding : 文件编码  默认值二进制. 中文: utf8

第三个参数callback :  (err,data)=>{ err:错误信息  data:读取的数据 }

fs.readFile('./data/aaa.txt','utf-8',(err,data)=>{
  if(err){
    console.log(err); 
    throw err
  }else{
    console.log(data);
  }
})

③在集成终端查看

 输入node 文件名(可按tab快速补齐)

 writeFile()的使用

①导入内置模块

const fs = require('fs')

②使用模块

第一个参数: 文件路径

第二个参数: 要写入的数据

第三个参数: 文件编码  默认是数据编码

第四个参数: (err)=>{ }

fs.writeFile('./data/bbb.txt','年少莫问前程,天涯亦有归途',err=>{
  if( err ){
    throw err
  }else{
    console.log('文件写入成功')
  }
})

③在集成终端查看

 点开bbb.txt查看内容

2.path 路径模块

①.导入模块

const path = require('path')

②使用模快-有四种方法

 (1) 获取一个文件的拓展名

/* 不关心此路径文件在不在, 就是处理这个字符串。 获取.后面的部分可以知道这个文件格式 */
console.log( path.extname('index.html') )// .html
console.log( path.extname('aaa.bbb') )// .bbb
console.log(path.extname('javaScript.js'));//js

集成终端查看


 (2)拼接相对路径, 使用join方法

/* 把多个字符串按照路径的方式拼接起来 */
console.log( path.join('aaa','bbb') )// aaa/bbb
console.log(path.join('a,b,c'));//a,b,c

集成终端查看


(3) 拼接绝对路径

/* 默认从磁盘根目录开始拼接出完整的路径 */
console.log( path.resolve('/aa','bb','cc') )// 文件夹绝对路径/aa/bb/cc

集成终端查看


(4)获取当前文件所在的绝对路径

console.log( __dirname )// 可获取文件夹绝对路径
console.log( path.join(__dirname , 'aaa','bbb') )

 集成终端查看

3.http 搭建服务器模块

整体步骤:

①导入http模块

const http = require('http')

②创建服务器

const app =  http.createServer( (req,res)=>{
  // (1) req : request 请求报文
  console.log( decodeURI(req.url) )
  // console.log( req.url, decodeURI(req.url) )
  // (2)处理
  // (3)res : response 响应报文
} )

③开启http服务器

// 3.开启服务器
/* 
第一个参数 port : 端口号
  一个电脑有很多个软件,一个软件对应一个端口号. 范围[0,65535]
第二个参数 hostname : 主机名(ip地址)
  网线地址: 192.168.81.34            cmd命令:ipconfig
  本机地址: 127.0.0.1  (获取当前网线的ip地址,相当于js中的self) 
第三个参数 callback : ()=>{}
*/
app.listen(3088,'192.168.74.149',()=>{
  console.log('服务器开启成功')
})

 之后进浏览器在地址栏输入,可查看到服务器接受到了666666

(查看本机IP地址,在cmd中输入ipconfig即可)

方法1:在服务器中根据请求不同处理不同的信息

const http =require('http')
const app =http.createServer((req,res)=>{
    if( req.url === '/index' ){
        // 3.response : 响应报文
        // 设置响应头 :  服务器告诉浏览器我给你的数据是什么格式
        res.writeHead(200,{
          'Content-Type':'text/html;chartset=utf8'
        })
        res.end('index')//响应体
      }else if( req.url === '/login' ){
    
        res.writeHead(200,{
          'Content-Type':'text/json;chartset=utf8'
        })
        // 后台只能响应 字符串或二进制,  如果你想要响应其他数据需要转成json
        // js=>json :  JSON.stringify( js对象 )
        res.end( JSON.stringify( {name:'初映',age:22} ) )
        
      }else{
        res.end('Not Found' + req.url )
      }
})

app.listen(3088,'192.168.74.149',()=>{
    console.log('服务器开启成功')
  })

 请求地址是login。res.end(浏览器响应)

  请求地址是index的时候。res.end(浏览器响应)

 当服务器收到了错误的请求地址。res.end(浏览器响应)

 方法2:nodejs响应客户端html文件

①导入需要的模块

// 1.导入
const http =require('http')
const fs =require('fs')
const path =require('path')

②创建我们的服务器

// 2.创建
const app = http.createServer((req,res)=>{
    if(req.url==='/'){
        // 响应index.html代码
        fs.readFile(path.join(__dirname,'index.html'),(err,data)=>{
            if (err) {
               throw err 
            }else{
                res.end(data)
            }
        })}}
    )

③开启服务器

// 3.开启
app.listen(3000,()=>{
    console.log('服务器开启成功')
  })

网页地址栏搜索

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

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

相关文章

Java程序员你自己的菜鸟气质霸气侧漏了吗?

对于刚入行的程序员来说,面对各种各样的陌生配置环境和代码库,难免会手忙脚乱,尽显菜鸟本色。 但从啥都需要教的菜鸟到啥都懂的大神程序员,并不简单,这需要牺牲一根又一根宝贵的头发,直到它们肉眼可数。 …

线上服务器CPU占用过高?7步带你搞定

一. 前言在Java开发岗位的面试中,时不时会出现一些运维类的题目,其实这也反映了后端面试的一种趋势。现在企业对后端开发的要求越来越全面,不仅要求我们会写代码,还要我们能够进行部署和运维。今天壹哥就结合一个真实的项目案例&a…

【Linux】Linux权限

权限的概念 限制人的,访问的对象天然可能没有这种“属性”权限:一件事情是否允许被谁“做”。 权限 人 事物属性 Linux上的用户分类 root,超级管理员,几乎可以干任何事情(1个)普通用户(多个&a…

雷电飞机大战游戏|基于Java开发实现雷电飞机大战游戏

作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路 关注作者有好处 文末获取源…

【前端】Vue项目:旅游App-(8)city:标签页Tabs动态数据:网络请求axios与request、数据管理store与pinia、各种封装

文章目录目标过程与代码安装相关库封装网络请求相关代码网络请求数据网络请求数据操作封装pinia管理数据并封装tab栏改为动态数据效果本篇总结总代码修改或新建的文件serviceindexmodules的cityrequest的configrequest的indexstoremodules的citymodules的loadingcity.vue参考目…

录屏没有声音怎么办?录屏怎么录声音

相信部分朋友在录制视频时,有出现录制视频没有声音,导致该段视频没有声音而无法播放。录屏怎么录声音?可以使用支持录制声音的专业的电脑录屏软件。今天小编就在这给大家分享在录制视频同时,将声音也录制进去的操作步骤。一、录屏…

【Linux】主函数的三个形参

主函数的形参有三个:argc参数个数,argv参数内容,envp环境变量。其中argc是整型,argv和envp是指针数组(存的字符串) argv源于我们自己在使用执行命令时传的内容,envp源于程序的父进程&#xff08…

力扣sql入门篇(十)

力扣sql入门篇(十) 1 查找重复的电子邮箱 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 SELECT Email FROM Person GROUP BY Email HAVING count(id)>21.3 运行截图 2 合作过至少三次的演员和导演 2.1 题目内容 2.1.1 基本题目信息 2.1.2 示例…

Java并发编程(六)ExecutorService

ExecutorService invokeAny() he invokeAll() 具有阻塞特性 invokeAny invokeAny 的作用是取得第一个完成任务的结果的值。 如果线程中增加 if (!Thread.currentThread().isInterrupted()) 判断,则会中断这些线程。 其他线程如果抛出 InterruptedException() 异常&a…

从徘徊迷茫到行业精英,社科院与杜兰大学金融管理硕士改变你的人生轨迹

在以“内卷”为主基调的职场环境里,似乎不停地进阶已经成为了职场人的唯一出路。但是,如何在进阶路上冲破职业瓶颈,到达心之所往的理想位置,则没有一个标准的答案。有的职场人士通过考取不同的技能证书来增加自身优势,…

Java Agent 踩坑之 appendToSystemClassLoaderSearch 问题

作者:卜比 本文是《容器中的 Java》系列文章之 2/n,欢迎关注后续连载 😃 。 从 Java Agent 报错开始,到 JVM 原理,到 glibc 线程安全,再到 pthread tls,逐步探究 Java Agent 诡异报错。 背景 …

数据分析,你还在单纯地看数据?

企业的数字化意识越来越强,工作中也开始使用各种业务系统来管理业务,管理数据。很多人以为上了业务系统,对数据进行统计了,就是数据分析,这是大错特错的观点,数据分析是通过数据来剖析企业经营管理和业务发…

Using chatbots to scaffold EFL students argumentative writing (论文翻译)

使用聊天机器人来指导学生的议论文写作摘要研究表明,英语作为外语的学生的议论文写作受益于与同龄人的互动。然而,在实践中找到一个理想的对象很困难,聊天机器人被认为是这个问题的潜在解决方案。聊天机器人是人工智能的一种形式,…

Studio One6最新更新教程及安装包下载

Studio One6拥有多达50款原生效果插件,例如Analog Delay延迟插件,除能制作延迟效果外,还提供了制作复古的镶边与和声效果。Rotor插件制作的经典旋转扬声器效果也是非常不错的。这些插件,无论是在用户界面,还是使用体验…

http-serve开启一个服务器

前言在写前端页面中,经常会在浏览器运行HTML页面,从本地文件夹中直接打开的一般都是file协议,当代码中存在http或https的链接时,HTML页面就无法正常打开,为了解决这种情况,需要在在本地开启一个本地的服务器…

70. 爬楼梯

70. 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n 2 输出:2 解释:有两种方法可以爬到楼顶。 1 阶 1 阶2 阶 示例 2&am…

如何将python脚本打包成可执行exe文件

如何将python脚本打包成可执行exe文件 前提条件 1. 新建一个python项目,并且配置虚拟环境 2. 安装pyinstaller 打包EXE文件 写一个支持入参的python脚本,打包成exe文件 找一张图片作为exe文件的图标 百度搜索” 在线jpg转cio”,将图片转换成cio格式 …

MySQL基础篇第11章(数据处理之增删改)

1.插入数据 1.1 实际问题 1.2 方式1:VALUES的方式添加 使用这种语法一次只能向表中插入一条数据。 情况1:为表的所有字段按默认顺序插入数据 INSERT INTO 表名 VALUES (value1,value2,....);值列表中需要为表的每一个字段指定值,并且值的…

MTIC工业大脑,海量接入网关!

MTIC3.0工业大脑是高性能,高可靠性的低代码开发数据核心平台,支持上万级别的网关设备同时在线,提供标准版本业务系统,可实现多业主工程项目并行管理,吸取大型物联网数据监测工程专家建议,实现项目精细化管理…

什么是DPU

什么是DPU 什么是 DPU? 在数据中心、DPU 或数据处理单元中移动数据的专家是一种新型的可编程处理器,将与 CPU 和 GPU 一起成为计算的三大支柱之一。 当然,您可能已经熟悉中央处理器。 多年来,CPU 是大多数计算机中唯一的可编程元…