Node.js基础(fs、path、http内置模块)

Node.js是基于ChromeV8引擎的JavaScript运行环境,常用于构建Web应用、桌面应用和API接口。学会Node.js可以使用Express快速建站,用Electron开发跨平台应用。文章介绍了Node.js的LTS和Current版本选择,以及fs模块的文件读写操作,path模块的路径处理,http模块用于创建Web服务器的基本步骤。
摘要由CSDN通过智能技术生成

Node.js 简介

Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine.Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。

Node.js 的官网地址: https://nodejs.org/zh-cn/

Node.js 作为一个 JavaScript 的运行环境,仅仅提供了基础的功能和 API。然而,基于 Node.js 提供的这些基础能,很多强大的工具和框架如雨后春笋,层出不穷,所以学会了 Node.js ,可以让前端程序员胜任更多的工作和岗位:

① 基于 Express 框架(http://www.expressjs.com.cn/),可以快速构建 Web 应用

② 基于 Electron 框架(https://electronjs.org/),可以构建跨平台的桌面应用

③ 基于 restify 框架(http://restify.com/),可以快速构建 API 接口项目

④ 读写和操作数据库、创建实用的命令行工具辅助前端开发、etc…

Node.js 环境的安装

如果希望通过 Node.js 来运行 Javascript 代码,则必须在计算机上安装 Node.js 环境才行。安装包可以从 Node.js 的官网首页直接下载,进入到 Node.js 的官网首页(https://nodejs.org/en/),点击绿色的按钮,下载所需的版本后,双击直接安装即可

在这里插入图片描述

1. 区分 LTS 版本和 Current 版本的不同

① LTS 为长期稳定版,对于追求稳定性的企业级项目来说,推荐安装 LTS 版本的 Node.js。

② Current 为新特性尝鲜版,对热衷于尝试新特性的用户来说,推荐安装 Current 版本的 Node.js。但是,Current 版本中可能存在隐藏的 Bug 或安全性漏洞,因此不推荐在企业级项目中使用 Current 版本的 Node.js。

2. 查看已安装的 Node.js 的版本号

打开终端,在终端输入命令 node –v 后,按下回车键,即可查看已安装的 Node.js 的版本号。

fs 文件系统模块

fs 模块是 Node.js 官方提供的、用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作需求。例如:

  • fs.readFile() 方法,用来读取指定文件中的内容
  • fs.writeFile() 方法,用来向指定的文件中写入内容

如果要在 JavaScript 代码中,使用 fs 模块来操作文件,则需要使用如下的方式先导入它:

在这里插入图片描述

1.读取指定文件中的内容

  1. fs.readFile() 的语法格式

使用 fs.readFile() 方法,可以读取指定文件中的内容,语法格式如下:

在这里插入图片描述
参数解读:

  • 参数1:必选参数,字符串,表示文件的路径。
  • 参数2:可选参数,表示以什么编码格式来读取文件。
  • 参数3:必选参数,文件读取完成后,通过回调函数拿到读取的结果。
  1. fs.readFile() 的示例代码

以 utf8 的编码格式,读取指定文件的内容,并打印 err 和 dataStr 的值:

在这里插入图片描述

  1. 判断文件是否读取成功

可以判断 err 对象是否为 null,从而知晓文件读取的结果:

在这里插入图片描述

2.向指定的文件中写入内容

  1. fs.writeFile() 的语法格式

使用 fs.writeFile() 方法,可以向指定的文件中写入内容,语法格式如下:

在这里插入图片描述
参数解读:

  • 参数1:必选参数,需要指定一个文件路径的字符串,表示文件的存放路径。
  • 参数2:必选参数,表示要写入的内容。
  • 参数3:可选参数,表示以什么格式写入文件内容,默认值是 utf8。
  • 参数4:必选参数,文件写入完成后的回调函数。
  1. fs.writeFile() 的示例代码

向指定的文件路径中,写入文件内容:

在这里插入图片描述

  1. 判断文件是否写入成功

可以判断 err 对象是否为 null,从而知晓文件写入的结果:

在这里插入图片描述

path 路径模块

path 模块是 Node.js 官方提供的、用来处理路径的模块。它提供了一系列的方法和属性,用来满足用户对路径的处理
需求。

例如:

  • path.join() 方法,用来将多个路径片段拼接成一个完整的路径字符串
  • path.basename() 方法,用来从路径字符串中,将文件名解析出来

如果要在 JavaScript 代码中,使用 path 模块来处理路径,则需要使用如下的方式先导入它:

在这里插入图片描述

1.路径拼接

  1. path.join() 的语法格式

使用 path.join() 方法,可以把多个路径片段拼接为完整的路径字符串,语法格式如下:

在这里插入图片描述
参数解读:

  • …paths 路径片段的序列
  • 返回值:
  1. path.join() 的代码示例

使用 path.join() 方法,可以把多个路径片段拼接为完整的路径字符串:

在这里插入图片描述
注意:今后凡是涉及到路径拼接的操作,都要使用 path.join() 方法进行处理。不要直接使用 + 进行字符串的拼接。

2.获取路径中的文件名

  1. path.basename() 的语法格式

使用 path.basename() 方法,可以获取路径中的最后一部分,经常通过这个方法获取路径中的文件名,语法格式如下:

在这里插入图片描述
参数解读:

  • path 必选参数,表示一个路径的字符串
  • ext 可选参数,表示文件扩展名
  • 返回: 表示路径中的最后一部分
  1. path.basename() 的代码示例

使用 path.basename() 方法,可以从一个文件路径中,获取到文件的名称部分:

在这里插入图片描述

3.获取路径中的文件扩展名

  1. path.extname() 的语法格式

使用 path.extname() 方法,可以获取路径中的扩展名部分,语法格式如下:

在这里插入图片描述
参数解读:

  • path 必选参数,表示一个路径的字符串
  • 返回: 返回得到的扩展名字符串
  1. path.extname() 的代码示例

使用 path.extname() 方法,可以获取路径中的扩展名部分:

在这里插入图片描述

http 模块

http 模块是 Node.js 官方提供的、用来创建 web 服务器的模块。通过 http 模块提供的 http.createServer() 方法,就能方便的把一台普通的电脑,变成一台 Web 服务器,从而对外提供 Web 资源服务。

如果要希望使用 http 模块创建 Web 服务器,则需要先导入它:

在这里插入图片描述

服务器和普通电脑的区别在于,服务器上安装了 web 服务器软件,例如:IIS、Apache 等。通过安装这些服务器软件,就能把一台普通的电脑变成一台 web 服务器。

在 Node.js 中,我们不需要使用 IIS、Apache 等这些第三方 web 服务器软件。因为我们可以基于 Node.js 提供的
http 模块,通过几行简单的代码,就能轻松的手写一个服务器软件,从而对外提供 web 服务。

1.创建 web 服务器的基本步骤

步骤1 - 导入 http 模块

如果希望在自己的电脑上创建一个 web 服务器,从而对外提供 web 服务,则需要导入 http 模块:

在这里插入图片描述

步骤2 - 创建 web 服务器实例

调用 http.createServer() 方法,即可快速创建一个 web 服务器实例:

在这里插入图片描述

步骤3 - 为服务器实例绑定 request 事件

为服务器实例绑定 request 事件,即可监听客户端发送过来的网络请求:

在这里插入图片描述

步骤4 - 启动服务器

调用服务器实例的 .listen() 方法,即可启动当前的 web 服务器实例:

在这里插入图片描述

req 请求对象

只要服务器接收到了客户端的请求,就会调用通过 server.on() 为服务器绑定的 request 事件处理函数。

如果想在事件处理函数中,访问与客户端相关的数据或属性,可以使用如下的方式:

在这里插入图片描述

res 响应对象

在服务器的 request 事件处理函数中,如果想访问与服务器相关的数据或属性,可以使用如下的方式:

在这里插入图片描述

解决中文乱码问题

当调用 res.end() 方法,向客户端发送中文内容的时候,会出现乱码问题,此时,需要手动设置内容的编码格式:

在这里插入图片描述

2.根据不同的 url 响应不同的 html 内容

2.1. 核心实现步骤

① 获取请求的 url 地址
② 设置默认的响应内容为 404 Not found
③ 判断用户请求的是否为 / 或 /index.html 首页
④ 判断用户请求的是否为 /about.html 关于页面
⑤ 设置 Content-Type 响应头,防止中文乱码
⑥ 使用 res.end() 把内容响应给客户端

2.2 动态响应内容

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值