zoukankan      html  css  js  c++  java
  • 爬虫工程师也应该会的 NodeJS 知识(一)

    爬虫工程师也应该会的 NodeJS 知识(一)

    NodeJS 是什么?

    Node.js 是基于 “ Chrome V8 引擎 ” 的 JavaScript 运行环境

    V8 引擎是一款专门解释和执行 JS 代码的虚拟机,任何程序只要集成了 V8 引擎都可以执行 JS

    NodeJS 不是一门编程语言,NodeJS 是一个运行环境 ,由于这个运行环境集成了 V8 引擎,所以在这个运行环境下可以运行我们编写的JS代码。

    这个运行环境最大的特点就是提供了操作 " 操作系统底层的API " ,通过这些底层 API 我们可以编写出网页中无法实现的功能 ( 诸如: 打包工具, 网站服务器等 )

    Node 环境搭建

    搭建方式一

    1. 官网下载.msi安装包: https://nodejs.org/zh-cn/

    2. 全程下一步

    3. 在命令行工具中输入 node -v

    搭建方式二

    1. 官网下载.zip安装包: https://nodejs.org/zh-cn/ 

    2. 解压下载好的安装包

    3.  在"高级系统设置"中手动配置环境变量 4.在命令行工具中输入 node -v

    搭建方式三

    1. 下载NVM: https://github.com/coreybutler/nvm-windows 

    2. 在 D 盘创建 dev 目录 

    3. 在 Dev 目录中创建两个子目录 nvm 和 nodejs , 并且把 nvm 包解压进去 nvm 目录中 

    4. 在 install.cmd 文件上面右键选择【以管理员身份运行】 - 在终端中直接按下回车 - 将弹出的文件另存为到 NVM 目录 

    5. 打开 settings.txt 文件点击修改

    root: D:DeveloperDevNVM
    path: D:DeveloperDevNode

        6. 配置环境变量

    NVM_HOME: D:xxxDevNVM
    NVM_SYMLINK: D:xxxDevNode
    在Path中添加 %NVM_HOME% %NVM_SYMLINK%

        7. 在命令行工具中输入 nvm version

    NVM常用命令

    • nvm list 查看当前安装的 Node.js 所有版本
    • nvm install 版本号 安装指定版本的 Node.js
    • nvm uninstall 版本号 卸载指定版本的 Node.js
    • nvm use 版本号 选择指定版本的 Node.js

    Node 环境和浏览器环境的区别

    NodeJS环境和浏览器环境一样都是一个JS的运行环境, 都可以执行JS代码. 但是由于宿主不同所以特点也有所不同

    1. 内置对象不同

    • 浏览器环境中提供了 window 全局对象
    • NodeJS 环境中的全局对象不叫 window , 叫 global

    2. this 默认指向不同

    • 浏览器环境中全局this默认指向 window
    • NodeJS 环境中全局this默认指向空对象 {}

    3. API 不同

    • 浏览器环境中提供了操作节点的 DOM 相关 API 和操作浏览器的 BOM 相关 API
    • NodeJS 环境中没有 HTML 节点也没有浏览器, 所以 NodeJS 环境中没有 DOM / BOM

    Node 全局对象的属性与模块导出入数据

    Node 全局对象的属性

    和浏览器一样 Node 环境中的全局对象也提供了很多方法属性供我们使用 中文文档地址: http://nodejs.cn/api/

    __dirname: 当前文件所在文件夹的绝对路径
    __filename: 当前文件的绝对路径
    setInterval / clearInterval : 和浏览器中window对象上的定时器一样
    setTimeout /  clearTimeout : 和浏览器中window对象上的定时器一样
    console :  和浏览器中window对象上的打印函数一样

    Node 中的模块导出数据

    在 NodeJS 中想要导出模块中的变量函数有三种方式

    这个在我们 JS 逆向的时候经常使用到,只要将加密的 JS 补全并将返回的变量导出出来就可以在其他的 JS 中 require 模块后直接使用了。

    通过exports.xxx = xxx导出
    通过module.exports.xxx = xxx导出
    通过global.xxx = xxx导出

    注意:不管使用那种方法导出,在使用的时候需要 require 模块后才能使用,通过global.xxx 方式导出不符合 CommonJS 规范, 不推荐使用

    Node 中的模块导入的注意事项

    1、require 导入模块时可以不添加导入模块的类型

    如果没有指定导入模块的类型, 那么会依次查找.js .json .node文件无论是三种类型中的哪一种, 导入之后都会转换成 JS 对象返回给我们

    2、导入自定义模块时必须指定路径

    require 可以导入自定义模块(文件模块)系统模块(核心模块)第三方模块

    • 导入自定义模块模块时前面必须加上路径(这就是为什么很多新手导入自己写的模块时出错的原因)
    • 导入系统模块第三方模块是不用添加路径

    3、导入系统模块第三方模块是不用添加路径的原因

    • 如果是系统模块直接到环境变量配置的路径中查找
    • 如果是第三方模块会按照 module.paths 数组中的路径依次查找

     
     

  • 相关阅读:
    控制反转(IOC)/依赖注入(DI)理解
    MySQL常用命令总结
    Java继承与清理
    Java组合与继承生成的类中构造函数的执行顺序
    Java中4种权限的理解
    C# 选项卡控件
    USMART 组件移植到STM32
    c# 规范用户输入控件
    c# 图像呈现控件PictureBox
    C# 制作软件启动界面
  • 原文地址:https://www.cnblogs.com/llbky/p/13816129.html
Copyright © 2011-2022 走看看