Node.js学习(一):node.js初识及fs文件系统模块
1、node.js初识
1)什么是node.js?
什么是node.js?node的官网上给出了这样的答案:Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine. (Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。)
浏览器是javascript的前端运行环境,而node.js是javascript的后端运行环境。在node.js中,我们无法调用BOM和DOM等浏览器内置API。
2)node.js安装与使用
进入 Node.js 的官网首页(https://nodejs.org/en/),下载所需要的node版本后,直接“下一步”安装即可。安装完成之后,打开计算机终端,输入:node -v,可以看到自己的node版本号,则表示node安装成功。
这里补充一下我常用的打开终端的方式:
a、使用快捷键(Windows徽标键 + R)打开运行面板,输入 cmd 后直接回车,即可打开终端。
b、打开计算机某一文件夹,选择文件夹路径,输入cmd替换,回车即可打开终端。
c、打开计算机某一文件夹,按住shift,然后鼠标右键,选择“在此处打开PowerShell窗口”,也能打开终端。
2、fs文件系统模块
1)fs.readFile()方法:
fs.readFile(path,option,callback):用来读取指定文件中的内容,有三个参数。
参数一(path):字符串,表示文件的路径,必填
参数二(option):表示以什么编码格式来读取文件,默认值 utf-8,选填
参数三(callback):文件读取后,通过回调函数拿到结果,必填
2)fs.writeFile()方法:
fs.writeFile(path,data,option,callback) :用来向指定的文件中写入内容,有四个参数。
参数一(path):字符串,表示文件的路径,必填
参数二(data):表示文件中要写入的内容。,必填
参数三(option):表示以什么格式写入文件内容,默认值是 utf-8,选填
参数四(callback):文件写完后,通过回调函数拿到结果,必填
3)fs路径动态拼接问题
在使用 fs 模块操作文件时,如果提供的操作路径是以 ./ 或 …/ 开头的相对路径时,很容易出现路径动态拼接错误的问题。
原因:代码在运行的时候,会以执行 node 命令时所处的目录,动态拼接出被操作文件的完整路径。
解决方法:在使用 fs 模块操作文件时,直接提供完整的路径,或者运用"dirname"实现路径拼接(其中,__dirname : 表示文件当前所处的目录)。
示例代码:
//引入文件系统模块
const fs = require('fs')
// 代码在运行的时候,会以执行 node 命令时所处的目录,动态拼接出被操作文件的完整路径
// 若 node命令所处目录+所填相对路径拼接之后 !== 指定文件的完整路径,则文件读取失败
// 一、相对路径示例
// fs.readFile('./文本/1.txt','utf-8',function(err,dataStr){
// if(err){
// return console.log('文件读取失败'+err.message)
// }
// console.log('文件读取成功'+dataStr)
// })
// 二、绝对路径示例
// fs.readFile('D:\\桌面\\code\\系统性学习\\node.js\\day01\\文本\\1.txt','utf-8',function(err,dataStr){
// if(err){
// return console.log('文件读取失败'+err.message)
// }
// console.log('文件读取成功'+dataStr)
// })
// __dirname(此处是两个下划线+dirname) : 表示文件当前所处的目录
// 三、运用__dirname进行路径拼接
fs.readFile(__dirname+'/文本/1.txt','utf-8',function(err,dataStr){
if(err){
return console.log('文件读取失败'+err.message)
}
console.log('文件读取成功'+dataStr)
})