aoe1231

知之为知之,不知为不知

Node.js学习笔记1——

1、初识Node.js

1.1、Node.js简介

1.1.1、什么是Node.js

Node.js是一个基于Chrome V8 引擎的JavaScript运行环境。

Node.js的官网地址:https://nodejs.org/zh-cn/

1.1.2、Node.js中的JavaScript运行环境

  • V8引擎;
  • 内置API:fs、path、http、JS内置对象、querystring、...

注意:

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

1.1.3、Node.js可以做什么

Node.js作为一个JavaScript运行环境,仅仅提供了基础的功能和API。然而,基于Node.js提供的这些基础的功能,很多强大的工具和框架如雨后春笋层出不穷。

  • 基于Express框架,可以快速构建Web应用;
  • 基于Electron框架,可以构建跨平台的桌面应用;
  • 基于restify框架,可以快速构建API接口项目;
  • 读写和操作数据库、创建实用的命令行工具辅助前端开发。

1.2、Node.js环境的安装

如果希望通过Node.js来运行JavaScript代码,则必须在计算机上安装Node.js环境才行。

安装包可以从Node.js的官网首页直接下载,进入到Node.js的官网首页(http://nodejs.org/en/),点击绿色的按钮,下载所需的版本后,双机直接安装即可。

1.2.1、区分LTS版本和Current版本的不同

LTS为长期稳定版,对于追求稳定性的企业级项目来说,推荐安装LTS版本的Node.js。

Current为新特性稳定版,对热衷于尝试新特性的用户来说,推荐安装Current版本的Node.js。但是,Current版本中可能存在隐藏的Bug或安全性漏洞,因此不推荐在企业级项目中使用Current版本的Node.js。

1.2.2、查看已安装的Node.js版本号

打开终端,在终端输入命令node -v后,按下回车键,即可查看已安装的Node.js的版本号。

Windows系统中快速打开终端的方式:使用快捷键(Win + R)打开运行面板,输入cmd后直接回车,即可打开终端。

1.2.3、什么是终端

终端(Terminal)是专门为开发人员设计的,用于实现人机交互的一种方式。

1.3、在Node.js环境中执行JavaScript代码

  • 打开终端;
  • 输入node 要执行的文件路径。

1.3.1、终端中的快捷键

在Windows的powershell或cmd终端中,我们可以通过如下快捷键,来提高终端的操作效率:

  • 使用↑键,可以快速定位到上一次执行的命令;
  • 使用tab键,可以快速补全路径;
  • 使用esc键,能够快速清空当前已输入的命令;
  • 使用cls命令,可以清空当前终端内容。

2、fs文件系统模块

2.1、什么是fs文件系统模块

fs模块是Node.js官方提供的、用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作需求。例如:

  • fs.readFile()方法,用来读指定文件中的内容;
  • fs.writeFile()方法,用来向指定的文件中写入内容;

如果要在JavaScript代码中,使用fs模块来操作文件,则需要使用如下的方式先导入它:

const fs = require("fs");

2.2、读取指定文件中的内容

2.2.1、fs.readFile()

-语法格式:
fs.readFile(path[, options], callback);
    path:必须参数,字符串,表示文件的路径;
    options:可选参数,表示以什么编码格式来读取文件;
    callback:必选参数,文件读取完成后,通过回调函数拿到读取的结果。

-示例:以utf9的形式,读取指定文件的内容,并打印err和dataStr的值
const fs = require("fs");
fs.readFile("./files/11.txt", "utf8", function(err, dataStr) {
    console.log(err);
    console.log("------");
    console.log(dataStr);
});

2.2.2、判断文件是否读取成功

可以判断err对象是否为null,如果为null,说明读取成功;反之则读取失败。

const fs = require("fs");
fs.readFile("./files/11.txt", "utf8", function(err, dataStr) {
    if(err) {
        return console.log('文件读取失败!' + err.message);
    }else {
        console.log('文件读取成功!' + dataStr)
    }
});

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

2.3.1、fs.writeFile()

-语法格式
fs.writeFile(file, data[, options], callback);
    file:必选参数,需要指定一个文件路径字符串;
    data:必选参数,表示要写入的内容;
    options:可选参数,表示以什么格式写入文件内容,默认值是utf8;
    callback:必选参数,文件写入完成后的回调函数。

-示例代码
const fs = require('fs');
fs.writeFile('./files/2.txt', 'Hello Node.js', function (err) {
    console.log(err);
});

2.3.2、判断文件是否写入成功

可以判断err对象是否为null,如果为null,说明写入成功;反之则写入失败。

2.4、fs模块 - 路径动态拼接错误的问题

在使用fs模块操作文件时,如果提供的操作路径是以./或../开头的相对路径时,很容易出现路径动态拼接错误的问题。

原因:代码在运行的时候,会以执行node命令时所处的目录,动态拼接出被操作文件的完整路径。

解决方案:在使用fs模块操作文件时,直接提供完整的路径,不要提供./或../开头的相对路径,从而防止路径动态拼接的问题。但移植性非常差,不利于维护。

改进方案:

// __dirname 表示当前文件所处的目录
console.log(__dirname);
const fs = require('fs');
fs.readFile(__dirname + '\\files\\2.txt',
    'utf8', function (err, dataStr) {
    if(err) {
        return console.log('读取文件失败!' + err.message);
    }
    console.log('读取文件成功!' + dataStr);
});

3、path路径模块

3.1、什么是path模块

path模块是Node.js官方提供的、用来处理路径的模块,它提供了一系列的方法和属性,用来满足用户对路径的处理需求。例如:

  • path.join()方法,用来将多个路径片段拼接成一个完整的路径字符串;
  • path.basename()方法,用来将路径字符串中,将文件名解析出来。

如果要在JavaScript代码中,使用path模块来处理路径,则需要使用如下的方式先导入它:

const path = require('path');

3.2、路径拼接

3.2.1、path.join()

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

-语法格式;
path.join([...paths]);
    paths<string>路径片段的序列;
    返回值:<string>

-示例
const path = require('path');

const pathStr = path.join('/a', '/b/c', '../', './d', 'e')
console.log(pathStr) //输出 \a\b\d\e

const pathStr2 = path.join(__dirname, './files/2.txt')
console.log(pathStr2) //输出 当前文件所处目录\files\2.txt

注意:今后凡是涉及到路径拼接的操作,都要使用path.join()方法进行处理,不要直接使用+进行字符串的拼接。

3.3、获取路径中的文件名

3.3.1、path.basename()

-语法格式
path.basename(path)

posted on 2022-09-18 15:47  啊噢1231  阅读(27)  评论(0编辑  收藏  举报

导航

回到顶部