-
基于ChromeV8JS引擎的运行环境。
-
文件读写。
-
数据库。
-
全栈式语言。
-
特性:
-
事件驱动。
-
非阻塞IO模型(异步)(处理高并发请求)。
-
轻量和高效。
-
跑大量计算性能较差。
-
生态目前不是非常稳健。
-
一般用作前端和后端的中间层,进行前端的业务接口,后端的数据请求接口。
-
主要用途:
-
前端项目构建工具:webpack、vue-cli——大型企业。
-
微型后端——小型网站应用。
-
导入、导出模块时使用CommonJs的规范。
-
require、exports、module。
-
导入没有导出的模块会返回一个空对象。
-
导入和导出返回的是一个对象。
-
module.exports和exports是同一个对象。但是系统默认先找前者。前者可以直接导出一个对象,后者一般导出单个属性。 -
导出只会运行一次,其余的都会赋值第一次导入的对象。
-
node里面默认是异步操作。调用同步函数要明确调用。异步操作尽量封装成await模式。(不封装成await形式,不能保证回调函数执行的顺序。)
-
buffer可以开辟内存空间连续且固定的内存。使用buffer存储数据进行一些操作会比数组快。适用于一些计算量大的场合。
-
可以进行文件操作:
-
读文件。
-
写文件。
-
创建文件夹。
-
删除文件夹。
-
爬虫流程:
-
获取需要爬取的目标URL。
-
提取目标内容(可用库、可用正则匹配)。
-
进入下一页URL(观察地址栏URL变化)。
-
提取所有。
-
适当定时请求,减小服务器压力(或者使用代理服务器去请求)。
-
如果是前端渲染,那么就只能去分析链接(Ajax请求),找到爬取方法。
-
如果是后端渲染,那么请求URL就在源码里面。