43 Node简介、Node安装、Node运行与顶层对象、Buffer、模块系统、包和npm

 

43 Node简介、Node安装、Node运行与顶层对象、Buffer、模块系统、包和npm

一、Node简介

Node.js是一个能够在服务器端运行JavaScript的开放源代码、跨平台JavaScript运行环境。

Node.js主要用于编写像Web服务器一样的网络应用。

官网地址:https://nodejs.org/en/

中文官网:http://nodejs.cn/

1.前端与后台

HTML、css、js,在用户端都是属于前端的部分。前端的作用:第一反应给用户想不想进一步接触 。

如果一个网站性能到底好不好,有时候是取决于后端的。

2.学习Node的目的

了解前后端交互流程。学习后端是如何运转的。

地址?key=value

3.为什么选择Node

Node是后端语言的平台 。php、java、python、C#。

它基于Ecmascript的语言。我们只需要学习后端思想即可。 JavaScript is everwhere。

4.Node的特点

把chrome的 V8引擎给拿出来的。

单线程:对标多线线程 。 因为js是单线程的。线程死了,程序也就死了。但是这些都不叫事。

事件循环机制:

任务 + 事件完成机制 =》 接下来要干什么 。

异步非阻塞

node是异步非阻塞的,速度是非常快。

5.Node适合的场景

写接口、写动态网站 、即时通信。

6.Node与JavaScript之间的区别

JavaScript:ecmascript/BOM/DOM

Node: Ecmascript/Node提供的方法,没有DOM和BOM

( 定时器、Math、String、Number、Array、RegExp、Date、Math... )

readFile/ rmfile

二、Node安装

1.下载与安装

下载地址:http://nodejs.cn/download/

V14只能是win10及以上。

https://npm.taobao.org/mirrors/node/ v12

image-20210318094706950

X64 : 64位

X86:32位

2.常见cmd操作

命令行操作。

如何打开命令行:

第1种、window + r => cmd : 路径是以你管理用户名为目录

第2种、开始 => 搜索 cmd : 路径是以你管理用户名为目录

第3种、文件夹地址栏 => cmd : 执行命令路径就是 当前文件夹的目录

dir:查看当前目录的内容

cls:清屏

cd:修改目录 -》 cd 目录名 cd 命令要结合使用 tab键:快速补全。

↑↓:快速调出最近命令

如果进入node环境,按两次ctrl+c退出 。

 

//创建文件夹、创建文件、删除文件: cmd常用命令。 cmd关机命令: shutdown

作用:

1、可以执行系统自带的命令

2、执行一些可执行程序: .exe、.cmd

在cmd中输入 notepad、mspaint可以打开对应的记事本、画面 程序。

但是 输入vscode不行。:vscode不是内部命令,也不是可执行程序 。

notepad、mspaint 在环境变量中是已经存储的。而我们后期安装的没有记录。

node可以在cmd运行。

3.环境变量

如果以后 出现 xxxx 不是内部命令,也不是可执行程序 ,两种情况:要么就是没安装此程序,要么就是环境变量出了问题。

配置环境变量:

右键计算机-》属性-》高级系统设置-》环境变量-》系统变量-》path-》复制出来所有的值

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Lenovo\Fingerprint Manager Pro\;C:\Program Files\Git\cmd;C:\Program Files\nodejs\;C:\Program Files (x86)\Tencent\WeChat

;C:\Users\Administrator\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\Administrator\AppData\Roaming\npm

修改完毕,重启cmd

image-20210318102602330

image-20210318102602330

三、Node运行与顶层对象

1.Node的运行

 

代码示例:

console.log( 'hello node.js' )

1、在任意目录下打开cmd。然后通过拖拽的方式执行此文件

2、在文件的当前下打开cmd。然后通过相对路径的方式执行此文件 。

2.顶层对象

在浏览器 JavaScript 中,通常 window是顶层对象,而 Node.js 中的顶层对象是 global

代码示例:

console.log( global )

 

3.全局变量

Node平台内置了例如:__filename__dirname等全局变量 setInterval() setTimeout()等方法

 

代码示例:

// setTimeout( ()=>{
//     console.log('123')
// } ,2000)

let num = 0
setInterval( ()=> {
   console.log( num++ )
} ,1000)

__filename : 获取当前执行文件的完整路径,包含文件名的。绝对路径

__dirname : 获取当前执行文件的目录路径。不包含文件名

使用技巧 :反映了在后端当中涉及到文件路径的,应该是用绝对路径。

console.log( __dirname + '\\a.txt' )

// console.log( __dirname );
// console.log( __filename );

 

四、Buffer(了解)

Buffer类是随Node.js内核一起发布的核心库

Buffer的结构和数组很像、但Buffer就是专门用来存储二进制数据

文件中就是以二进制流存储的。 1和0。计算机只认识1和0,

1.常见进制简述

二进制、八进制、十进制、十六进制...

n进制( 0~n-1 )

2进制(0~1) 逢2进1

10(0-9) 逢10进1

二进制的:
1  0 1  1
1 * 2^3 +  0*2^2 + 1*2^1 + 1*2^0 =>11
1               2           3
1*10^2 2*10^1 3*10^0   = 123

进制转换工具

https://tool.lu/hexconvert/

十六进制:

0~F: 0~9 a b c d e f

虽然文件流是二进制,但是存储的表现形式是十六进制 。为什么 ?

10: 二进制:1010 -》 十六进制:a

计算机的存储原理:

最小的存储单位 :b,bite,比特。

存储文件最小单位:B,字节

1b 就是一位

8b = 1B

10111122
1 1 1 1 1 1 1 1
               

1Kb = 1024B

1Mb = 1024Kb

1Gb = 1024Mb

...

ascill

 

比如:0100 0001 =》 字符A =》 65

11111111,足以表示它们的字符。

utf8通用的3个字节表示1个字符、gb2312国标码 2个字节足以表示咱们国内的字符

 

2.Buffer的常见操作

2.1基本使用

 

代码案例:


 

2.2常见方法

 

代码案例:


 

五、模块系统

在Node.js中,一个js文件就称之为一个模块(Module)。

1.模块概述

简述优势

 

2.模块的分类

在Node中,模块分为两类:一类是Node提供的模块,称为核心模块;另一类是用户编写的模块,称为文件模块。

 

2.1 内置模块/核心模块

 

代码示例:


 

2.2 文件模块

文件模块常见的有:自定义模块、第三方模块

 

代码示例:


 

2.3 模块加载机制和Commonjs简述

 

六、包和npm

1.包的概念:

在Nodejs中包由由包结构和包描述文件两个部分组成.

包结构:用于组织包中的各种文件,例如:源代码文件、资源文件

包描述文件:描述包的相关信息,例如:package.json、bin、lib等文件

 

2.npm

npm是随着Nodejs一起安装的一个包管理工具。

 

3.npm常见命令

 

示例:


 

4.package.json文件详解

 

代码示例:


 

5.淘宝镜像

1)全局安装cnpm工具( 我们npm工具如何使用的,cnpm一模一样 )

npm install -g cnpm --registry=https://registry.npm.taobao.org

 

2)配置npm命令的源:

npm config set registry https://registry.npm.taobao.org 

 

 

posted @ 2021-05-07 22:21  一花一世界111  阅读(231)  评论(0)    收藏  举报