Node.js 是基于 “ Chrome V8 引擎 ” 的 JavaScript 运行环境
V8 引擎是一款专门解释和执行 JS 代码的虚拟机,任何程序只要集成了 V8 引擎都可以执行 JS
NodeJS 不是一门编程语言,NodeJS 是一个运行环境 ,由于这个运行环境集成了 V8 引擎,所以在这个运行环境下可以运行我们编写的JS代码。
这个运行环境最大的特点就是提供了操作 " 操作系统底层的API " ,通过这些底层 API 我们可以编写出网页中无法实现的功能 ( 诸如: 打包工具, 网站服务器等 )
root: D:\Developer\Dev\NVM
path: D:\Developer\Dev\Node6. 配置环境变量
NVM_HOME: D:\xxx\Dev\NVM
NVM_SYMLINK: D:\xxx\Dev\Node
在Path中添加 %NVM_HOME% %NVM_SYMLINK%7. 在命令行工具中输入 nvm version
NodeJS环境和浏览器环境一样都是一个JS的运行环境, 都可以执行JS代码. 但是由于宿主不同所以特点也有所不同
1. 内置对象不同
2. this 默认指向不同
3. API 不同
和浏览器一样 Node 环境中的全局对象也提供了很多方法属性供我们使用 中文文档地址: http://nodejs.cn/api/
__dirname: 当前文件所在文件夹的绝对路径
__filename: 当前文件的绝对路径
setInterval / clearInterval : 和浏览器中window对象上的定时器一样
setTimeout / clearTimeout : 和浏览器中window对象上的定时器一样
console : 和浏览器中window对象上的打印函数一样在 NodeJS 中想要导出模块中的变量函数有三种方式
这个在我们 JS 逆向的时候经常使用到,只要将加密的 JS 补全并将返回的变量导出出来就可以在其他的 JS 中 require 模块后直接使用了。
通过exports.xxx = xxx导出
通过module.exports.xxx = xxx导出
通过global.xxx = xxx导出注意:不管使用那种方法导出,在使用的时候需要 require 模块后才能使用,通过global.xxx 方式导出不符合 CommonJS 规范, 不推荐使用
1、require 导入模块时可以不添加导入模块的类型
如果没有指定导入模块的类型, 那么会依次查找.js .json .node文件无论是三种类型中的哪一种, 导入之后都会转换成 JS 对象返回给我们
2、导入自定义模块时必须指定路径
require 可以导入自定义模块(文件模块)、系统模块(核心模块)、第三方模块
自定义模块模块时前面必须加上路径(这就是为什么很多新手导入自己写的模块时出错的原因)系统模块和第三方模块是不用添加路径3、导入系统模块和第三方模块是不用添加路径的原因
系统模块直接到环境变量配置的路径中查找第三方模块会按照 module.paths 数组中的路径依次查找