初识 Node.js 与内置模块

初识 Node.js 与内置模块

一、在 Node.js 环境中执行 JavaScript 代码

  1. 打开终端
  2. 切换到 js 文件目录
  3. 输入 node 要执行的 js 文件的路径

在这里插入图片描述

终端中的快捷键:

  1. 使用 键, 可以快速定位到上一次执行的命令
  2. 使用 tab 键, 能够快速补全路径
  3. 使用 esc 键, 能够快速清空当前已输入的命令
  4. 输入 cls 命令, 可以清空终端

二、fs 文件系统模块

1、读取指定文件中内容
fs.readFile() 的语法格式:
fs.readFile(path[, options], callback)

参数解读:

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

在这里插入图片描述

代码:
// 1.导入fs模块,来操作文件
const fs = require('fs')
// 2.调用 fs.readFile()方法读取文件
// 参数1:读取文件的路径
// 参数2:读取文件的编码格式,一般默认指定 utf8
// 参数3:回调函数,拿到读取失败和成功的结果 err dataStr
fs.readFile('./files/12.txt', 'utf8', function (err, dataStr) {
    // 如果读取成功,则err的值为null
    // 如果读取失败,则err的值为错误对象
    console.log(err); //打印失败
    console.log("-------------");
    console.log(dataStr); //打印成功
})
结果:

在这里插入图片描述

判断文件是否读取成功 :

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

const fs = require('fs')

fs.readFile('./files/12.txt', 'utf8', function (err, dataStr) {
    if (err) {
        return console.log("读取文件失败!" + err.message);
    } else {
        console.log("读取文件成功!" + dataStr);
    }
})

结果:

在这里插入图片描述

2、向指定的文件中写入内容
fs.writeFile() 的语法格式:
fs.writeFile(file, data[, options], callback)

参数解读:

  • 参数1:必选参数,需要指定一个文件路径的字符串, 表示文件的存放路径
  • 参数2:必选参数,表示要写入的内容
  • 参数3:可选参数,表示以什么格式写入文件内容, 默认值为 utf8
  • 参数4:必选参数,文件写入完成后的回调函数
fs.writeFile() 示例
代码:
// 1.导入fs模块,来操作文件
const fs = require('fs')
// 2.调用 fs.writeFile(),写入文件的内容
// 参数1:文件的存放路径
// 参数2:要写入的内容
// 参数3:回调函数
fs.writeFile('f:/files/2.txt', 'abcd', function (err) {
    // 如果文件写入成功,则 err 的值为null
    // 如果文件写入失败,则 err 的值为错误对象
    console.log(err); //打印失败
})
文件:

在这里插入图片描述

结果:

在这里插入图片描述

判断文件是否读取成功 :

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

const fs = require('fs')

fs.writeFile('./files/2.txt', 'abcd', function (err) {
    if (err) {
        return console.log("文件写入失败!" + err.message);
    } else {
        console.log("文件写入成功!");
    }
})

结果:

在这里插入图片描述

三、fs 模块 - 路径动态拼接的问题

路径动态拼接错误问题: 操作路径是已 ./ 或 …/ 开头的相对路径

原因: 代码在运行的时候, 会执行 node 命令时所处的目录, 动态拼接出被操作文件的完整路径

解决方案: 在使用 fs 模块操作文件时, 直接提供完整的路径, 不要提供 ./ 或 …/ 开头的相对路径, 从而防止路径动态拼接的问题

__dirname 表示当前文件所处的目录

在这里插入图片描述

const fs = require('fs')

fs.readFile(__dirname + '/files/1.txt', 'utf8', function (err, dataStr) {
    if (err) {
        return console.log("读取文件失败!" + err.message);
    } else {
        console.log("读取文件成功!" + dataStr);
    }
})

四、path 路径模块

path 模块是用来处理路径的模块

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

在 JavaScript 代码中导入

const path = require("path")
1. path.join()

可以把多个路径片段拼接为完整的路径字符串

语法格式
path.join([...paths])

参数解读:

  • …paths 路径片段的序列
  • 返回值:
代码示例
const path = require("path")

// 注意: ../ 会抵消前面的路径
const pathStr = path.join("/a", '/b/c', '../', './d', 'e')
console.log(pathStr); //输出 \a\b\d\e

const pathStr2 = path.join(__dirname, './files/1.txt')
console.log(pathStr2); //输出 D:\Vscode\VSCodeSample\Node.js\files\1.txt
2. path.basename()

可以获取路径中的最后一部分, 经常通过这个方法获取路径中的文件名

语法格式
path.basename(path[, ext])

参数解读:

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

// 定义文件的存放路径
const fpath = '/a/b/c/index.html'

const fullName = path.basename(fpath)
console.log(fullName); // 输出 index.html

const nameWithoutExt = path.basename(fpath, '.html')
console.log(nameWithoutExt); // 输出 index
3. path.extname()

可以获取路径中的扩展名部分

语法格式
path.extname(path)

参数解读:

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

// 定义文件的存放路径
const fpath = '/a/b/c/index.html'

const fext = path.extname(fpath)
console.log(fext); // 输出 .html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

foursecond

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值