当前位置: 首页 > news >正文

Node.js

是什么

是一个js的运行环境(有了Node.js,就可以脱离浏览器,独立执行js的代码)

选择cmd终端

在node环境下使用node命令,执行js代码

法一

法二(选)

 在集成终端中打开

这样再执行某个js文件时,(切换终端里的路径,直接定位文件所在文件夹)就可以使用node + 相对路径


fs模块 —— 读写文件

语法:

  • 将js模块加载到js文件中,获取js模块对象

const fs = require('fs') 模块的名字

  • 写入文件内容

fs.writeFile('文件路径' , '写入的内容' ,err => {}) 写入后的回调函数

  • 读取文件内容

fs.readFile('文件路径' , (err,data)=>{}) 读取后的回调函数

data 是 buffer 16进制数据流对象 ;要通过data.toString()才能转换成字符串


path模块 —— 路径问题

注意一个问题:Node.js代码中,相对路径是根据终端所在路径来找的

建议:在Node.js代码中,使用绝对路径

绝对路径如何获取:__dirname

可动态获取当前模块js文件所在文件夹目录的绝对路径

由于windows和mac不同平台的定界符不同;我们使用path.join() 拼接路径

path.join():使特定于平台的分隔符,作为定界符,将所有给定的路径片段连接在一起

const fs = require('fs')
const path = require('path')//读取文件内容
fs.readFile(path.join(__dirname,'../test.txt'),(err,data)=>{if(err) console.log(err)else console.log(data.toString())
})

语法:

  • 加载path模块,引入path模块对象
  • 调用path.join() 配合__dirname 组成目标文件的绝对路径

案例1. —— 压缩前端html

目的:让前端的代码体积更小,用户在自己浏览器中加载的更快

需求:把回车符\r 和 换行符\n去掉,然后写入新的html文件中

思路:

读取源html文件内容 -> 正则表达式替换字符串(\r\n 换成'')-> 写入新的html文件中

  • 读取源html文件内容

  • 正则表达式替换字符串 

  • 写入新的html文件中


http模块 —— 创建Web服务程序 

需求:创建Web服务 并 响应内容给浏览器

端口号:0~65535 ; 其中0~1023是被系统占用的

  • 加载http模块
  • 创建Web服务对象
  • 监听request请求事件,设置响应头和响应体
  • 配置端口号 并 启动Web服务
  • 浏览器请求(http://localhost:端口号)测试

 server.on("request",(req,res)=>{
    res.end("Hello Nodejs")
    //end方法能够将数据返回给浏览器,浏览器会显示该字符串
})

*on:该方法用来监听事件**
参数1(此处的request):事件类型,request代表浏览器请求事件
参数2:回调函数。当监听到浏览器请求后,发出的回调函数,该函数中有两个参数
    第一个参数(此处req):请求对象
    第二个参数(此处res):响应对象

end方法能够将数据返回给浏览器,浏览器会显示该字符串


案例2.—— 浏览时钟

需求:基于Web服务,将时钟网页提供给浏览器浏览

只有请求/index.html时,才把压缩完的,时钟的html文件里的字符串内容返回给请求方


 


http://www.mrgr.cn/news/76472.html

相关文章:

  • 【3D Slicer】的小白入门使用指南九
  • 【小程序】封装网络请求request模块
  • 使用Axios函数库进行网络请求的使用指南
  • mysql时间时区修改、set global、配置文件-default-time-zone
  • 【阅读记录-章节1】Build a Large Language Model (From Scratch)
  • 几何合理的分片段感知的3D分子生成 FragGen - 评测
  • Spring:IOC实例化对象bean的方式
  • 第二十二章 TCP 客户端 服务器通信 - TCP设备的OPEN和USE命令关键字
  • 【算法速刷(10/100)】LeetCode —— 23. 合并 K 个升序链表
  • Linux---shell脚本
  • Spring Batch :高效处理海量数据的利器
  • 15分钟学 Go 第 56 天:架构设计基本原则
  • 【操作系统不挂科】<Linux进程概念>选择题(带答案与解析)
  • shell数组
  • 预处理(1)(手绘)
  • 低代码平台:跨数据库处理的重要性与实现方式
  • JavaScript 变量:理解基元和引用类型
  • AT方法论
  • Python Tornado框架教程:高性能Web框架的全面解析
  • Scala-键盘输入(StdIn)-用法详解
  • 【030】基于51单片机甲醛检测报警器【Proteus仿真+Keil程序+报告+原理图】
  • 理论力学基础:讲义与笔记(2)
  • WebChromeClient 方法分类及其功能
  • 数据研发基础| 什么是数据漂移
  • git本地分支推送到远程和远程pull到本地
  • 蓝桥杯备赛(持续更新)