今天正式开始学习node啦!!开心开心
前提
在学习node.js之前,需要有html+css+js的基础作为前提哦,在学习js的时候,我们知道js可以分为两大部分:
- js代码之所以能在浏览器中运行,是因为浏览器中有js引擎来解析代码(常用的chrome浏览器的引擎是v8),并且为js代码的运行提供了对应的运行环境
- 那么如果我们想用js做后端开发,也需要为其配置相应的运行环境,node就是我们为js提供的后端开发的运行环境。
什么是node.js
Node.js是一个基于Chrome V8引擎的JavaScript运行环境。
(附:node下载地址)https://nodejs.org/zh-cn/https://nodejs.org/zh-cn/
推荐安装左侧版本,安装地址不建议更改盘符,其他的都按照默认选项即可。
终端输入 node -v 可以查看自己安装的node版本。
node具有自己的内置API,无法调用浏览器中的内置bom dom API。
我们学习node,主要就是学习node的内置API,再学习第三方库。
node.js中的运行环境
在node中执行js代码
(cmd终端)
- win+r快捷键 输入cmd打开终端
- 输入cd+盘符 切换到文件所在目录
- 输入node+文件名
第二种方式:(powershell终端,功能更强大,更为推荐)
在这里给大家补充四个终端常用的快捷键和指令
fs文件系统模块
fs模块是Node.js官方提供的、用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作需求。
要想使用fs模块,首先要使用如下方法导入:
const fs=require('fs')
完成后就可以使用fs来调用里面的方法了
readfFile()读取文件内容
语法格式如下:
示例如下:表示的就是读取同一个目录下的名为files1的文件
其中回调函数中的两个参数分别表示读取成功和读取失败的结果
const fs=require('fs')
//导入fs模块
fs.readFile('./files1.txt','utf8',function(err,dataStr){
console.log(err)
console.log('------')
console.log(dataStr)
})
writefFile()向文件中写入内容
语法格式如下:
示例如下:表示的是向files2文件中写入abcd字符串,同时目录中会生成新的files2文件
如果原本就有则不会生成新的,且写入的内容会覆盖原有的内容
const fs=require('fs')
//导入fs模块
//默认以Utf8格式编码
fs.writeFile('./files2.txt','abcd',function(err,data){
console.log(err)
//文件导入成功,err的值为null
})
fs模块中路径动态拼接的问题
代码在运行的时候,会以执行node命令时所处的目录,动态拼接出被操作文件的完整路径
,从而造成文件读取不到的情况。
方法一:写文件的完整路径(但是这种方法可读性,移植性都比较差)
fs.readFile("E:\\web\\node\\test.txt")
//特殊字符要用斜杠来转义
方法二:使用__dirname加上 /文件名
fs.readFile(__dirname+'/files2.txt')
//在node中,__dirname表示的就是当前文件所处的目录
path路径模块
方法三:使用path模块中的path.join()方法处理路径(更为推荐使用)
const path=require('path')
//首先也要导入path模块
const pathStr=path.join('/a','/b/c','../','./d')
//注意:其中../会抵消一级目录,./不会抵消
//结果是: \a\b\d
console.log(pathStr)
path.basename()获取路径中文件名
语法格式如下:
示例如下:
const path=require('path')
//定义文件存放路径
const fpath='/a/b/c/index.html'
const name=path.basename(fpath)
console.log(name)//index.html
如果我们不想要这个后缀名,只想获取其中的文件名,那我们就加上可选参数
示例如下:
const path=require('path')
//定义文件存放路径
const fpath='/a/b/c/index.html'
const name=path.basename(fpath,'.html')
console.log(name)//index
path.basename()获取路径中文件扩展名
语法格式如下:
示例如下:
const path=require('path')
//定义文件存放路径
const fpath='/a/b/c/index.html'
const name=path.extname(fpath)
console.log(name)//.html