node 之 基础知识

思考:为什么javascript可以在浏览器中被执行

 答:因为浏览器中包含有解析器.

 不同的浏览器使用不同的javascript解析器

1/chrome 浏览器 =>v8

2/firefox 浏览器 +> odinmonkey(奥丁猴)

3/safri 浏览器 =>jsCode

4/IE浏览器 => Chakra(查克拉)

注意:chrome 浏览器的v8是最好的

 

思考:为什么javascript可以操作Dom和Bom

 答:每个浏览器都内置了Dom,Bom这样的api函数,因此浏览器才可以调用他们

 

思考:浏览器中javascript运行环境

(1)运行环境指的是代码正常运行所需的必要环境

(2)V8引擎负责解析和执行js代码

(3)内置api是由运行环境提供的特殊接口,只能在所属的运行环境中被调用

 

node简介

1.什么是node.js

node.js是一个基于chrome V8引擎的javascript运行环境

2.Node.js中的JavaScript运行环境

① 浏览器是 JavaScript 的前端运行环境。

② Node.js 是 JavaScript 的后端运行环境。

③ Node.js 中无法调用 DOM 和 BOM 等 浏览器内置 API。

3.Node.js可以做什么

Node.js 作为一个 JavaScript 的运行环境,仅仅提供了基础的功能和API。然而,基于Node.js 提供的这些基础能,目前有很多强大的工具

① 基于 Express 框架(http://www.expressjs.com.cn/),可以快速构建Web 应用

② 基于 Electron框架(https://electronjs.org/),可以构建跨平台的桌面应用

③ 基于 restify 框架(http://restify.com/),可以快速构建API 接口项目

④ 读写和操作数据库、创建实用的命令行工具辅助前端开发

 

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

REPL (英语:Read - Eval - Print - Loop,简称REPL)是一个简单的,交互式的编程环境。它和浏览器调试工具中的 console 面板 比较类似,我们可以通过REPL,来执行一些简单的Javascript 代码。REPL 中每个字母所代表的含义分别是读取 - 求值 - 输出 - 循环

⚫ R(Read):每当我们输入完毕代码之后敲击回车键,Node.js 环境就会读取用户输入的代码

⚫ E(Eval):把Read 进来的用户代码,进行解析和执行

⚫ P(Print):把第二步中解析执行的结果,输出给用户

⚫ L(Loop):当输出完毕之后,进入下一次的REP 循环,等待用户输入新的代码

 如何进入 REPL 环境:打开任意终端,直接输入node 命令并回车,就会进入到REPL 环境中;如何离开 REPL 环境:在终端中,按两次Ctrl + C 快捷键,就能退出REPL 环境;

 

终端命令行的快捷键

在 Windows 的命令行中,我们可以通过如下快捷键,来提高命令行的操作效率:

① 使用 ↑ 键,可以快速定位到上一次执行的命令

② 使用 tab 键,能够快速补全路径

③ 使用 esc 键,能够快速清空当前已输入的命令

④  powershell,输入 clear命令,可以清空终端。 cmd中要用 cls

  

终端命令行

1.ls =》 list 查看 ,查看当前文件夹下所有的目录列表
   dir =>  list 查看 ,查看当前文件夹下所有的目录列表
2.cd =》 切换到某个文件夹下,  change directory
3.cd ../  =》退回上级文件夹
  cd ./ 当前目录
4.md=> 创建一个文件夹
5.rd => 删除一个文件夹
6.e:  => 磁盘名:   可以直接将路径变为e:
7.pwd => 当前工作的目录,就是目前在终端操作的哪个目录

  

1.fs文件系统模块

1.1什么是fs文件系统模块

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

⚫ fs.readFile() 方法,用来读取指定文件中的内容

⚫ fs.writeFile() 方法,用来向指定的文件中写入内容如果要在 JavaScript 代码中,使用 fs 模块来操作文件,则需要使用如下的方式先导入它:

const fs = reuire('fs')

  

1.2读取指定文件中的内容

1.fs.readFile()的语法格式

使用 fs.readFile() 方法,可以读取指定文件中的内容,语法格式如下:

fs.readFile(path[, options], callback)
参数1:必选参数,需要指定一个文件路径的字符串,表示要读取哪个路径对应的文件。
参数2:可选参数,表示以什么编码格式来读取文件。
参数3:必选参数,文件读取完成后,通过回调函数拿到读取的结果(err,data)=>{}

2.fs.readFile()的示例代码

const fs = require('fs');
fs.readFile('hello.txt', 'utf-8', (err, data) => {
    // 判断是否读取成功
    if (err) return console.log(err);
    console.log(data); 
});

  

1.3向指定的文件中写入内容

1.fs.writeFile()的语法格式

使用 fs.writeFile() 方法,可以向指定的文件中写入内容,语法格式如下

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

2.fs.writeFile()的示例代码

const fs = require('fs');
fs.writeFile('./hello.txt', 'hello node', (err) => {
    // 判断是否写入成功
    if (err) return console.log(err);
    console.log('写入成功');
});

  

1.4读取指定目录下所有文件的名称

1.fs.readdir()的语法格式

使用 fs.readdir() 方法,可以读取指定目录下所有文件的名称,语法格式如下:

fs.readdir(path[, options], callback)
参数1:必选参数,表示要读取哪个目录下的文件名称列表。
参数2:可选参数,以什么格式读取目录下的文件名称,默认值是utf8。
参数3:必选参数,读取完成以后的回调函数。

2.fs.readdir()的示例代码(得到的是一个数组)

通过 fs.readdir() 方法,可以读取指定目录下,所有文件的名称:

const fs = require('fs');
fs.readdir('./', (err, data) => {
    // 错误处理
    if (err) return console.log(err);
    console.log(data);
});

  

二.path路径模块

2.1 什么是path路径模块

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

⚫ path.join() 方法,用来将多个路径片段拼接成一个完整的路径字符串

⚫ path.basename() 方法,用来从路径字符串中,将文件名解析出来

const path = require('path')

  

2.2路径拼接

1.path.join()的语法格式

使用 path.join() 方法,可以把多个路径片段拼接为完整的路径字符串,语法格式如下

path.join([...paths])
...paths <string> 路径片段的序列
返回值: <string>

2.path.join()的代码示例

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

const path = require('path');

console.log( path.join('a', 'b', 'c') ); // a/b/c
console.log( path.join('a', '/b/', 'c') ); // a/b/c
console.log( path.join('a', '/b/', 'c', 'index.html') ); // a/b/c/index.html
console.log( path.join('a', 'b', '../c', 'index.html') ); // a/c/index.html
console.log(__dirname); // node自带的全局变量,表示当前js文件所在的绝对路径
// 拼接成绩.txt的绝对路径
console.log( path.join(__dirname, '成绩.txt') ); // ------ 最常用的

 

2.3获取路径中的文件名

1.path.basename()的语法格式

使用 path.basename() 方法,可以获取路径中的最后一部分,经常通过这个方法获取路径中的文件名

path.basename(path[,ext])
path <string> 必选参数,表示一个路径的字符串
ext <string> 可选参数,表示可选的文件扩展名
返回: <string> 表示路径中的最后一部分

2.path.basename()的代码示例

// 找文件名
console.log( path.basename('index.html') ); // index.html
console.log( path.basename('a/b/c/index.html') ); // index.html
console.log( path.basename('a/b/c/index.html?id=3') ); // index.html?id=3
console.log(path.basename('/api/getbooks')) // getbooks

 

2.4获取路径中的文件扩展名

1.path.extname()的语法格式

使用 path.extname() 方法,可以获取路径中的扩展名部分,语法格式如下: 

path.extname(path)

2.path.extname()的代码示例

使用 path.extname() 方法,可以获取路径中的扩展名部分

  • // 找字符串中,最后一个点及之后的字符 console.log( path.extname('index.html') ); // .html console.log( path.extname('a.b.c.d.html') ); // .html console.log( path.extname('asdfas/asdfa/a.b.c.d.html') ); // .html console.log( path.extname('adf.adsf') ); // .adsf

  

  

 

  

 

  

 

 

 

 

 

  

 

posted @ 2021-01-29 23:35  zmztyas  阅读(108)  评论(0编辑  收藏  举报