一、初识 Node.js
1 什么是 Node.js
Node.js 是一个基于Chrome v8引擎的 JavaScript 运行环境。
Node.js 官网地址:
英文网址:https://nodejs.org/en/download/
中文网址:http://nodejs.cn/download/
2 Node.js 中的JavaScript运行环境
注意:
① js 代码运行在浏览器中就是在做前端开发,js 代码运行在 Node.js 中就是在做后端开发
② Node.js 中无法调用DOM和BOM等浏览器内置API,因为运行环境不一样。
3 Node.js 下载
建议进入中文网址下载,外网太慢了,下载稳定版本的
4 在Node.js 环境中执行JavaScript 代码
① 打开终端
② 输入node 要执行的js文件
二、fs 文件系统模块
1 说明
fs 模块是 Nodejs 官方提供的,用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户
对文件的操作需求。
fs.readFile() 方法,用来读取指定文件中的内容。
fs.writeFile() 方法,用来向指定的文件中写入内容。
如果要在JavaScript代码中,使用 fs 模块来操作文件,则需要使用如下的方式先导入它:
const fs = require('fs');
2 fs.readFile() 语法格式
fs.readFile(path[, options], callback);
参数说明:
path:必选参数,是字符串类型,表示文件的路径。
options:可选参数,是字符串类型,表示以什么编码格式来读取文件。一般是 utf8
callback:必选参数,文件读取完成后,通过回调函数拿到读取的结果。
示例:
const fs = require('fs')
fs.readFile('666.txt','utf8',function(error,data) {
console.log(error);
console.log(data);
})
代码说明:
如果读取成功,则 error 的值为null,data 的值为文件内容。
如果读取失败,则 error 的值为错误对象,data 的值为 undefined。
3 fs.writeFile() 语法格式
fs.writeFile(file, data[, options], callback)
参数说明:
file:必选参数,是字符串类型,表示文件的存放路径。
data:必选参数,表示要写入的内容。
options:可选参数,是字符串类型,表示以什么编码格式来读取文件。默认是 utf8
callback:必选参数,文件写入完成后,通过回调函数拿到写入的结果。
示例:
const fs = require('fs')
fs.writeFile('666.txt','但不是完全寄',function(error) {
console.log(error);
})
代码说明:
如果读取失败,则 error 的值为错误对象。
4 路径动态拼接的问题
在使用fs模块操作文件时,如果提供的操作路径是以.或../开头的相对路径时,很容易出现路径动态拼接错误的问题。
原因:代码在运行的时候,会以执行node命令时所处的目录,拼接上被操作文件的路径,作为完整路径。
解决方案:
__dirname 再拼接上 读取文件的路径,示例:
const fs = require('fs')
fs.readFile(__dirname + '/666.txt','utf8',function(error,data) {
console.log(error);
console.log(data);
})
以后,读取文件的路径都是这么写,但是, 读取的文件一定要与 js 文件在同一个目录下
三、path 路径模块
1 说明
path 模块是 Nodejs 官方提供的,用来处理路径的模块。它提供了一系列的方法和属性,
用来满足用户对路径的处理需求。
path.join() 方法,用来将多个路径片段拼接成一个完整的路径字符串。
path.basename() 方法,用来从路径字符串中,将文件名提取出来。
path.extname() 方法,用来从路径字符串中,将文件扩展名提取出来。
如果要在JavaScript代码中,使用path模块来处理路径,则需要使用如下的方式先导入它:
const path = require('path')
2 path.join() 语法格式
示例:
const path = require('path');
let pathStr = path.join('/a','/b/c','../','/d')
console.log(pathStr); // 打印结果为 \a\b\d
代码说明:
../ 的意思是返回上一级目录,所以打印的结果是 \a\b\d,而不是 \a\b\c\d,该函数返回的是字符串
注意:
今后凡是涉及到路径拼接的操作,都要使用path.join()方法进行处理。不要直接使用+进行字符串的拼接。
3 path.basename() 语法格式
使用 path.basename() 方法,可以获取路径中的最后一部分,经常通过这个方法获取路径中的文件名,
语法格式如下:
path.basename(path[, ext])
参数说明:
path:必选参数,是字符串类型,表示一个路径的字符串。
ext:可选参数,是字符串类型,它可以把文件扩展名去掉。
该函数返回的是字符串类型。
示例:
const path = require('path');
const filePath = '/a/b/c/index.html'
let str = path.basename(filePath)
console.log(str); // 打印结果为 index.html
str = path.basename(filePath, '.html')
console.log(str); // 打印结果为 index
4 path.extname() 语法格式
path.extname(path)
参数说明:
path:必选参数,是字符串类型,表示一个路径的字符串。
该函数返回的是字符串类型。
示例:
const path = require('path');
const filePath = '/a/b/c/index.html'
let str = path.extname(filePath)
console.log(str); //打印结果 .html