Node.js最新版黑马配套笔记

文章目录

1. 初识node.js与内置模块

1.1 回顾与思考

浏览器中的javaScript的组成部分

  • JS核心语法
  • webAPI

为什么JavaScript可以再浏览器中被执行?
待执行的JS代码
JS解析引擎
不同的浏览器使用不同的JS解析引擎
为什么JS可以操作DOM还有BOM?
每个浏览器中内置了DOM,BOM这样的API函数,因此浏览器中的javaScript才可以调用它们
浏览器中JS的运行环境
运行环境是指代码正常运行所需要的必要环境
Chrome浏览器运行环境:
V8引擎和内置API函数

  • v8引擎负责解析和执行js代码
  • 内置API是由运行环境提供的特殊接口,只能在所属的运行环境中被调用
    ** js能否做后端开发?**

1.2 Node.js简介

1.什么是Node.js?
Node.js是一个基于Chrome V8引擎的JS运行环境
2.Node.js中的JS运行环境
V8引擎和内置API函数

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

3. Node.js可以做什么?
在这里插入图片描述

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

1.3Node.js环境的安装

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

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

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

2.fs文件系统模块

2.1什么是文件系统模块

fs模块是Node.js官方提供的、用来操作文件的模块,它提供了一系列的方法和属性,用来满足用户对文件的操作需求
在这里插入图片描述

2.2读取指定文件中的内容

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

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)

})

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

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

fs.writeFile(file, data[, options], callback)
  • 参数1:必选参数,字符串,表示文件的存放路径
  • 参数2:必选参数,表示要写入的内容
  • 参数3:可选参数,表示以什么编码格式来读取文件,默认值是utf8
  • 参数4:必选参数,文件写入完成后的回调函数。

在这里插入图片描述
判断文件是否读取成功
在这里插入图片描述

案例:考试成绩整理

核心实现步骤

  • 导入需要的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('写入文件成功!')
    })
})

2.4路径问题

在这里插入图片描述

3 path路径模块

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

const path=require('path')

3.1 path.join()语法格式

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

path.join([...paths])

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

3.2 path.basename()

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

path.basename(path[,ext])

参数:path:必选参数,表示一个路径的字符串
ext可选参数,表示文件拓展名
返回:表示路径中的最后一部分
在这里插入图片描述

3.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=/<style>[\s\S]*<\style>/
// 1.4匹配<stript></stript>标签的正则
const regScript=/<script>[\s\S]*<script>/

注意
1.fs.write()方法只能用来创建文件,不能用来创建路径
2.重复调用fs.writeFile()只能写入同一个文件,新写入的内容会覆盖之前的旧内容

4.http模块

4.1 基础概念

什么是客户端,什么是服务器?
在网络节点中,负责消费资源的电脑,叫做客户端。
负责对外提供网络资源的电脑,叫做服务器。
Http模块是Node.js官方提供的,用来创建web服务器的模块。通过http模块提供的Http.createServer()方法,就能方便的把一台普通电脑,变成一台web服务器,从而对外提供Web资源服务。

const http=require('http')

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

4.2 创建最基本的web服务器

1.导入Http模块

const http=require('http')

2.创建web服务器实例

const server=http.createServer()

3.为服务器实例绑定request事件,监听客户端的请求

//使用服务器实例的.on()方法,为服务器绑定一个request事件
server.on('request',(req,res)=>{
   
//只要有客户端来请求我们自己的服务器,就会触发request事件,从而调用这个事件处理函数
console.log('someone visit our web server.')
})

4.启动服务器

//调用server.listen(端口号,cb回调)方法,即可启动web服务器
server.listen(80,()=>{
   
console.log('http server running at http://127.0.0.1')
})

4.3 req请求对象

只要服务器接收到了客户端的请求,就会调用server.on()为服务器绑定的request事件处理函数
如果想在事件处理函数中,访问与客户端相关的数据或属性,可以使用如下的方式:

server.on('request',(req,res)=>{
   
//req是请求对象,它包含了与客户端相关的数据和属性,例如:
//req.url是客户端相关的数据和属性,例如:
//req.url是客户端请求的url地址
//req.method 是客户端的method请求类型
const str='Your request url is ${req.url},and request method is ${req.method}'
console.log(str)
}

4.4 res响应对象

server.on('request',(req,res)=>{
   
//res是响应对象,它包含了与服务器相关的数据和属性,例如:
//要发送到客户端的字符串
const str='Your request url is ${req.url},and request method is ${req.method}'
//res.end()方法的调用:
//向客户端发送指定内容,并结束这次请求的处理过程
res.end(str)
}

4.5解决中文乱码问题

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

server
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值