Node是什么(★★★)
Node是一个基于Chrome V8引擎的JavaScript代码运行环境
运行环境
- 浏览器(软件)能够运行JavaScript代码,浏览器就是JavaScript代码的运行环境
- Node(软件)能够运行JavaScript代码,Node就是JavaScript代码的运行环境
Node.js是什么(★★★)
- Node.js是运行在代码环境之上的语言
- JavaScript代码运行在浏览器中,JavaScript是语言,浏览器是运行环境
- JavaScript代码运行在Node 中,Node.js是语言,Node是运行环境
Node.js环境搭建(★★★)
Node.js环境安装
官网:https://nodejs.org/en/
- LTS = Long Term Support 长期支持版 稳定版
- Current 拥有最新特性 实验版
- 双击运行文件,选择相应的安装目录,下一步即可
- 安装完成后,window健+r 弹出运行窗口,输入cmd或者powershell打开命令行窗口,输入 node -v 来查看是否安装成功
Node环境安装失败解决办法
错误代号2502、2503
**失败原因:**系统帐户权限不足。
解决办法:
- 以管理员身份运行powershell命令行工具
- 输入运行安装包命令 msiexec /package node安装包位置
执行命令报错
**失败原因:**Node安装目录写入环境变量失败
**解决办法:**将Node安装目录添加到环境变量中
PATH环境变量
存储系统中的目录,在命令行中执行命令的时候系统会自动去这些目录中查找命令的位置
Node.js 的组成
- JavaScript 由三部分组成,ECMAScript,DOM,BOM。
- Node.js是由ECMAScript及Node 环境提供的一些附加API组成的,包括文件、网络、路径等等一些更加强大的 API。
Node.js基础语法
- 所有ECMAScript语法在Node环境中都可以使用
- 在Node环境下执行代码,使用Node命令执行后缀为.js的文件即可
- 切换文件目录比较麻烦,可以当当前工作空间里面按住 shift健 加鼠标右键,选择 此处打开命令窗口
Node.js全局对象 global
在浏览器中全局对象是window,在Node中全局对象是global。
Node中全局对象下有以下方法,可以在任何地方使用,global可以省略
- console.log() 在控制台中输出
- setTimeout() 设置超时定时器
- clearTimeout() 清除超时时定时器
- setInterval() 设置间歇定时器
- clearInterval() 清除间歇定时器
Node.js模块化开发
JavaScript开发弊端
JavaScript在使用时存在两大问题,文件依赖和命名冲突
模块化开发
Node.js中模块化开发规范(★★★)
- Node.js规定一个JavaScript文件就是一个模块,模块内部定义的变量和函数默认情况下在外部无法得到
- 模块内部可以使用exports对象进行成员导出, 使用require方法导入其他模块。
模块导出第一种方式:示例代码
A模块
const add = (n1, n2) => n1 + n2;
exports.add = add;
B模块
//const a = require('./03.module-a.js');
//通过 require 进行导入
const a = require('./03.module-a');
console.log(a.add(10, 20));
模块成员导出的另一种方式:示例代码
A模块
const greeting = name => `hello ${name}`;
module.exports.greeting = greeting;
B模块
const a = require('./04.module.exports.js');
console.log(a.greeting('zhangsan'));
两种导出的区别
exports是module.exports的别名(地址引用关系),导出对象最终以module.exports为准,所以我们在使用的时候就需要去注意,如果 exports 跟 model.exports 指向的是同一个对象,那么不会出问题