JavaScript
Javascript的组成部分
1)JS核心语法:变量、数据类型,循环、分支、判断,函数、作用域、this,etc
2)WebAPI:DOM操作,BOM操作,基于XMLHTTPRequest的Ajax操作,etc
浏览器中有Javascript解析引擎支持Javascript的执行,不同的浏览器使用不同的解析引擎(Chrome:V8,Firefox:OdinMokey奥丁候,Safri:JSCore,IE:Chakra),负责解析和执行JavaScript代码。
浏览器内置DOM、BOM、Ajax的API函数支持JavaScript进行操作DOM、BOM、Ajax。内置API是由运行环境提供的特殊接口,只能在所属的运行环境中被调用。
JavaScript运行环境是浏览器提供的。
JavaScript进行后端开发时,需要运行在Node.js中。
Node.js
Node.js是基于Chrome V8引擎的JavaScript运行环境。
官网:https://nodejs.org/zh-cn/
浏览器为前端运行环境,Node.js为后端运行环境,无法调用DOM和BOM等浏览器内置API。
Node.js的作用
1)基于Express框架(https://www.expressjs.com.cn/),快速构建Web应用
2)基于Electron框架(https://electron.org/),构建跨平台桌面应用
3)基于restify框架(https://restify.com/),快速构建API接口项目
4)读写和操作数据库、创建实用的命令行工具辅助前端开发
Node.js指令
查看版本号:node -v
执行JavaScript代码:node 执行的js文件的路径
fs文件系统模块
fs模块:操作文件的模块,提供一系列的方法和属性,满足用户对文件的操作需求。
导入:
const fs = require('fs')
fs模块-fs.readFile()
fs.readFile():读取指定文件中的内容
语法
//path:必选参数,字符串,表示文件的路径;options,可选参数,表示以什么编码格式来读取文件;callback,必选参数,文件读取完成好,通过回调函数拿到读取的结果
fs.readFile(path[, options], callback)
示例
fs.readFile('./file/1.txt','utf8', function(err,dataStr){
//打印失败的结果:1)读取成功,err的值为null。2)读取失败,err的值为错误对象,dataStr的值为underfined。
console.log(err)
console.los(dataStr)
})
fs文件系统模块-fs.writeFile()
fs.writeFile():指定文件中写入内容
语法
//path:必选参数,制定一个文件路径的字符串,表示文件的存放路径;data:必选参数,写入的内容;options,可选参数,表示以什么编码格式来写入文件内容,默认值为utf8;callback,必选参数,文件写入完成后的回调函数
fs.readFile(path,data[, options], callback)
示例
fs.writeFile('./file/2.txt','asd',function(err){
//文件写入成功,err的值等于null;文件写入失败,err的值等于一个错误对象
console.log(err)
})
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R1YJPrJV-1655904334145)(C:\Users\Snower\AppData\Roaming\Typora\typora-user-images\image-20220622192724750.png)]
fs模块-路径动态拼接的问题
提供操作路径是以./或…/开头的相对路径,很容易出现路径动态拼接的问题
原因:代码在运行的时候,会以执行node命令时所处的目录,动态拼接出操作文件的完整路径
解决方法:
1)使用绝对路径,但移植性非常差,不利于维护
2)__dirname:表示当前文件所处的目录,使用方法:与相对路径进行拼接(使用path.join()进行拼接)
path路径模块
用于处理路径的模块,提供一系列的方法和属性,用来满足用户对路径的处理需求。
导入:
const path = require('path')
方法:
path.join():
path.basename():用来从路径字符串中,将文件名解析出来
path路径模块-路径拼接
path.join():用来将多个路径片段拼接成一个完整的路径字符串
语法:
//返回值:路径的字符串<string>
path.join([...paths])
…/:可抵消前一层路径,./不能抵消路径
path路径模块-获取路径的文件名
path.basename():可以获取路径中的最后一部分,获取路径中的文件名
语法
//path<string>:必选参数,表示一个路径的字符串;ext<string>可选参数,表示文件扩展名;返回值:<string>表示路径中的最后一部分
path.basename(path[,ext])
path路径模块-获取路径的文件扩展名
path.extname():可以获取路径中的最后一部分,获取路径中的文件名
语法
//path<string>:必选参数,表示一个路径的字符串;返回值:<string>表示得到的扩展名字符串
path.extname(path)