Node.js
Node.js是什么
Node.js® 是一个基于 Chrome V8 引擎 的 JavaScript 运行时
(Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.)
名词解释
- chrome V8引擎: 在chrome浏览器用来解析和执行js代码的工具;
- 运行时:理解为一个容器,用来运行代码的环境;
Node.js是:一个采用chrome浏览器V8引擎来跑JS代码的环境。
浏览器是javascript的前端运行环境;
Node.js是javascript的后端运行环境;
理解
- Node全名是Node.js(也叫Node, nodejs, node.js),但它不是一个js文件,而是一个软件
- Node.js是一个基于Chrome V8引擎的javascript的运行环境,在这个环境中可以执行js代码
- Node.js提供了大量的内置模块及丰富的第三方模块,能够让我们完成文件读写、Web服务器、操作数据库等功能
为什么前端要学习Node.js
-
在Node环境下,写js代码实现后端的功能(web服务器,写接口,读写数据库…)
-
了解后端程序员的工作,增加职场竞争力
-
它是很多前端框架(vue, react,angular)的运行基础,学好Node.js有助于为后续框架的学习打下基础
Node.js的学习内容
它只是一个环境,不是一门语言(不需要学习新语言),我们要学习它的:
-
模块系统。能用不同的模块来完成不同的功能,例如:创建web服务器,写接口,连接操作数据库
-
NPM包管理工具。通过npm来管理我们的需要的第三方包,为后续学习框架打下基础
下装安装Node.js
下载
英文官网https://nodejs.org/en/
点击左侧的按钮(有LTS标识的那个),会立即下载。
版本说明:
- LTS: 长期稳定版(Long Term Support))。 项目开发建议使用长期稳定版
- Current: 最新版。最新版包含了一些新功能,如果想学习最新的功能,则可以使用该版本。最新版可能会有一些未知的bug。
安装
找到你下载的安装包,
-
双击安装文件开始安装(不同系统选择对应的安装文件)
-
傻瓜式安装,一路 ‘next’ 即可
注意:
- 建议安装目录所使用英文路径 (不要安装在类似于 d:/软件/node)
- 安装完成之后, 它不会在桌面出现快捷图标
测试是否安装成功
打开任意一个小黑窗,输入node -v
能够看到Nodejs版本号即为安装成功。
-
cmd窗口(
window+R
, —>运行–>录入cmd
,回车) -
powershell(window10操作系统)
任意位置,按下shift,右键
注意:安装nodejs之后,并不会像其它应用程序一样产生桌面的图标,或者是双击打开
在Node环境下运行js代码
js代码都是在浏览器中运行的,学习nodejs后,我们有了第二个环境中可以运行js代码。
步骤:
- 准备好要被执行的js文件
- 在命令行工具中写命令来运行这个文件
准备一个JS文件
请事先准备好一个js文件。例设这里的路径是:d:/src/index.js
具体内容是
var a = 1;
console.info(a + 2);
打开命令行工具,运行这个文件
格式
node 要执行的文件的路径
注意:node 的后面有一个空格
示例
例如:
node 01.js # 01.js就是当前目录下
node a/01.js # 01.js在目录a下面
- 最好是在当前文件所在目录下来运行这个js文件
打开命令行工具的方式
如何快速在某个目录下打开命令行工具(呢称:小黑窗), 有三种方式:
方法1:在资源管理器中按下shift,同时点击鼠标右键,可以选择在此处打开powershell/命令行窗口。
方法2:在资源管理器中,打开这个目录,直接在地址栏中写入 cmd
方法3: vscode中的右键,在命令行中运行
苹果电脑操作:
https://jingyan.baidu.com/article/375c8e1969b5f065f3a22967.html
http://www.xitongcheng.com/jiaocheng/dnrj_article_43975.html
https://support.apple.com/zh-cn/guide/terminal/apdb66b5242-0d18-49fc-9c47-a2498b7c91d5/mac
Node.js和浏览器端的区别
在浏览器端
js由三部分组成:ECMAScript
+ BOM
+ DOM
es6 ==> ECMAScript 6.0
在nodejs端
有ECMAScript
+ 内置模块(fs,
http
, path
,…)。在nodejs中是没有BOM、DOM、window,但使用ECMAScript是通用的
NodeJS中没有DOM,也没有BOM,也没有window对象。
ECMAScript
ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。是javascript语言的一个标准。它约定了:如何定义变量,函数,运算,数组,内置对象等等。
小结
相同点:都是可以运行js代码的容器,更严格一点说:都可以运行ECMAScript
不同点:各有不同的API: nodejs运行js时,不能写DOM,BOM,也不能用window对象了
学习常用的命令行下的命令及按键
键盘按键 | 对应指令 |
---|---|
node 空格 某个js文件 | 调用 node 程序,运行某个js文件 |
clear 或者 cls | 清空界面 |
ls/dir | 查看列表(list) |
cd 目录名 | 进入到目录中去 |
cd … | 返回上一级目录 |
cd \ | 直接回到根目录 |
Ctrl+C | 停止 Node 程序 |
输入部分文件名后按下 Tab 键 | 补全文件名 或 目录名, 多次tab会进行切换 |
↑ ↓ 上下箭头 | 切换历史输入 |
复制粘贴
在小黑窗中复制内容:选中内容,再点鼠标右键
把粘贴板中的内容复制到小黑窗: 点鼠标右键
nodejs中的模块分类
每个模块都是一个独立的文件。每个模块都可以完成特定的功能,我们需要时就去引入它们,并调用。
nodejs模块的分类:
- 核心模块
- 就是nodejs自带的模块,在安装完nodejs之后,就可以任意使用啦。相当于学习js时使用的Array对象。
- 源代码
https://github.com/nodejs/node/tree/master/lib
- 自定义模块
- 程序员自己写的模块。相当于我们在学习js时的自定义函数。
- 第三方模块
- 其他程序员写好的模块。
nodejs
生态提供了一个专门的工具npm来管理第三方模块,后面我们会专门讲到。 - 相当于别人写好的函数或者库。例如我们前面学习的
JQuery
库,artTemplate
等。
- 其他程序员写好的模块。
node.js核心模块
文档
学会查 API,远远比会几个 API 更重要
理解核心模块
核心模块就是 Node 内置的模块,需要通过唯一的标识名称来进行获取。每一个核心模块基本上都是暴露了一个对象,里面包含一些方法供我们使用。一般在加载核心模块的时候,变量(或常量)的起名最好就和核心模块的标识名同名。
例如:
const fs = require('fs')
const path = require('path')
console.log(path)