node.js(一)
- 网站服务器
能够提供网站访问服务的机器是网站服务器,能够接受客户端的请求,针对请求作出相应的响应。
1.简介
1.1 什么是Node.js?
-
Node.js不是一门语言,不是库,不是框架,是一个运行时环境
简单来说是node.js可以解析和执行js代码
以前只有浏览器可以解析执行js代码,现在可以完全脱离浏览器运行,归功于node.js浏览器中的js:基本语法、BOM、DOM
node中的js:没有BOM/DOM(服务端不操作界面)、有基本语法、一些服务器级别的API
例如:文件的读写,网络服务的构建,网络通信,http服务器学习node就是在学习网络服务器的开发
-
Node.js是一个建立在Google Chrome V8引擎上的非阻塞,事件驱动的,异步操作,轻量高效的生态系统
-
npm是一个基于node.js开发的包管理工具,npm是世界上最大的开源库生态系统,绝大多数的js相关包都放在npm上,为开发人员方便下载使用
1.2 Node.js能做什么?
- Web服务器后台
- 命令行工具:npm hexo git
1.3 Node.js特性
REPL模式(Read-Evaluate-Print-Loop, 输入-求值-输出-循环)
在命令行中 node xxx.js
在webstorm,Vscode等编译器中执行
node是单线程异步,无阻塞IO操作.基于事件驱动任务执行的
类似于发布订阅(响应式)
window VS global
客户端this执向window
在JS中执行,this执行当前模块,在命令行中执行,this指向global
1.4 Node.js优点
Node作为一个热门的前端框架,后台语言,有很多吸引人的地方:
- RESTful API
- 单线程
Node可以在不新增额外线程的情况下,依然可以对任务进行并发处理 —— Node.js是单线程的。它通过事件循环(event loop)来实现并发操作,对此,我们应该要充分利用这一点 —— 尽可能的避免阻塞操作,取而代之,多使用非阻塞操作。
1.5 接下来的计划
(1)B/S编程模型
browser-sever,back-end
任何服务器端技术的BS编程模型都是一样的,和语言无关
(2)模块化编程:引用加载js文件
(3)node常用api
(4)异步编程
(5)express web开发框架
(6)ES6
node --version/node -v:看有没有对应版本的更新
已经安装过,重新安装会覆盖,进行版本升级
2.起步
2.1、安装node环境
官网:https://nodejs.org/en/
LTS = Long Time Support 长期支持版 稳定版
Current 拥有最新特性 实验版
Node环境安装失败解决办法
- 错误代号2502、2503
失败原因:系统帐户权限不足。
解决办法:
以管理员身份运行powershell命令行工具
输入运行安装包命令 msiexec /package node安装包位置
- 执行命令报错
失败原因:Node安装目录写入环境变量失败
解决办法:将Node安装目录添加到环境变量中
2.2.PATH环境变量
存储系统中的目录,在命令行中执行命令的时候系统会自动去这些目录中查找命令的位置。
2.3.多版本安装方式
据说直接安装新版本会进行覆盖
- 卸载已有的Node.js
- 下载nvm 在C盘创建目录dev 在dev目中中创建两个子目录nvm和nodejs
- 把nvm包解压进去nvm目录中 在install.cmd文件上面右键选择【以管理员身份运行】
- 打开的cmd窗口直接回车会生成一个settings.txt文件,修改文件中配置信息 配置nvm和Node.js环境变量
NVM_HOME:C:\dev\nvm NVM_SYMLINK:C:\dev\nodejs 把配置好的两个环境变量加到Path中
3.hello node
在命令行中运行js文件
(1)创建编写JavaScript脚本文件(node的文件都为js文件)
(2)打开终端,定位到脚本文件所述目录
(3)输入node 文件名执行对应文件
- 注意:文件名不要使用node.js来命名