初识node.js与内置模块

一、初始node.js

1.1 什么是Node.js?

(1)、JavaScript 由三部分组成,ECMAScript,DOM,BOM
(2)、Node.js是由ECMAScript及Node 环境提供的一些附加API组成的,包括文件、网络、路径    等等一些更加强大的 API

1.2  node运行

  • 浏览器是JS的前端运行环境
  • Node.js是Js的后端运行环境
  • Node.js中无法调用DOM和BOM等浏览器内置AP

node是基于javascript来使用的,所以node文件的后缀名都是 .js
退出运行的方法:crtl c 运行文件:

node 文件名.js 

1.3 Node.js学习路径
JS基础语法- Node.js内置API模块(fs,path,http)-第三方API模块(express,mysql)

二、Node.js环境的安装

2.1. 什么是终端?
终端是专门为开发人员设计的,用于实现人机交互的一种方式
1.windows+R
2.输入cmd

2.2. 在Node.js环境中执行JS代码

1.打开终端
直接在地址栏敲cmd,可以使cmd切换到当下文件的地址
还可以在当前目录下的空白处按住shift键,右键打开powerShell
2.输入node 要执行的js文件的路径
node 空格 文件名
2.3 终端中的快捷键

三.系统模块

3.1 什么是系统模块

Node运行环境提供的API. 因为这些API都是以模块化的方式进行开发的, 所以我们又称Node运行环境提供的API为系统模块

3.2 什么是fs文件系统模块

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

· readFile()   读取文件

· writeFile()   写入文件

3.2.1 向指定的文件中读取内容

语法:

fs.readFile(path[,options],callback)
  • 参数1:必选参数,字符串,表示文件的路径
  • 参数2:可选参数,表示以什么编码格式来读取文件
  • 参数3:必选参数,文件读取完成后,通过回调函数拿到读取的结果。
// 1.导入fs模块,来操作文件
const fs = require('fs')
// 2.调用fs.readFile()方法读取文件
fs.readFile('./file/1.txt', 'utf8', function (err, dataStr) {
    // 打印失败的结果,如果读取成功,则err的值为null
    // 如果读取失败,则err的值为错误对象,dataStr的值为undefined
    console.log(err)
    // 打印成功的结果
    console.log(dataStr)

})

判断文件是否读取成功

// 1.导入fs模块,来操作文件
const fs = require('fs')
// 2.调用fs.readFile()方法读取文件
fs.readFile('./file/1.txt', 'utf8', function (err, dataStr) {
    // 打印失败的结果,如果读取成功,则err的值为null
    // 如果读取失败,则err的值为错误对象,dataStr的值为undefined
    if (err) {
        return console.log('读取文件失败' + err.message)
    }
    console.log('读取文件成功' + dataStr)

})

3.2.2 向指定的文件中写入内容

语法:

fs.writeFile(file, data[, options], callback)
  • 参数1:必选参数,字符串,表示文件的存放路径
  • 参数2:必选参数,表示要写入的内容
  • 参数3:可选参数,表示以什么编码格式来读取文件,默认值是utf8
  • 参数4:必选参数,文件写入完成后的回调函数。
const fs = require('fs')
fs.writeFile('./kl..txt', 'hello', err => {
    if (err) throw err;
    console.log('文件写入成功')
})

3.2.3 案例:考试成绩整理

核心实现步骤

  • 导入需要的fs文件系统模块
  • 使用fs.readFile()方法,读取素材目录下的成绩.txt文件
  • 判断文件是否读取失败
  • 文件读取成功后,处理成绩数据
  • 将处理完成的成绩数据,调用fs.writeFile()方法,写入到新文件中
// 导入fs模块
const fs = require('fs')
// 2.调用fs.readFile()方法读取文件
fs.readFile('./file/2.txt', 'utf8', function (err, dataStr) {
    // 打印失败的结果,如果读取成功,则err的值为null
    // 如果读取失败,则err的值为错误对象,dataStr的值为undefined
    // 3.判断文件是否读取成功
    if (err) {
        return console.log('读取文件失败' + err.message)
    }
    console.log('读取文件成功' + dataStr)


    // 4.1先把成绩的数据,按照空格进行分割
    const arrOld = dataStr.split(' ')
    // 4.2循环分割后的数组,对每一项的数据,进行字符串的替换操作
    const arrNew = []
    arrOld.forEach(item => {
        arrNew.push(item.replace('=', ':'))
    })
    console.log(arrNew)
    // 4.3把新数组中的每一项,进行合并,得到新的字符串
    const newStr = arrNew.join('\n\r')
    console.log(newStr)
    // 5.调用fs.writeFile()方法,把处理完毕的成绩,写入到新文件中
    fs.writeFile('./file/成绩ok.txt', newStr, function (err) {
        if (err) {
            return console.log('写入文件失败!' + err.message)
        }
        console.log('写入文件成功!')
    })
})

 在这里插入图片描述

4 path路径模块

path模块是Node.js官方提供的,用来处理路径的模块,它提供一系列的方法和属性,用来满足用户对于路径的处理需求
如果要在JS代码中,使用path模块来处理路径,则需要使用以下的方式先导入它

const path=require('path')

4.1 path.join()

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

path.join([...paths])

4.2 path.basename()

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

 path.basename(path[,ext])

参数:path:必选参数,表示一个路径的字符串
ext可选参数,表示文件拓展名
返回:表示路径中的最后一部分

4.3 path.extname()

使用该方法可以获取路径中的拓展名部分,语法格式如下

path.extname(path)

 path:必选参数,表示一个路径的字符串
返回:返回得到的拓展名字符串

案例:时钟

// 1.1 导入需要的模块并创建正则表达式
const fs=require('fs')
// 1.2导入path路径处理模块
const path=require('path')
// 1.3匹配标签
// 其中\s表示空白字符,\S表示非空白字符,*表示匹配任意次
const regStyle=/