
node.js
文章平均质量分 68
node.js
crayon-shin-chan
这个作者很懒,什么都没留下…
展开
-
node.js实战之使用 jsdom
jsdom 是许多 web 标准的纯 JavaScript 实现,特别是 WHATWG DOM和HTML标准。该项目的目标是模拟足够多的 Web 浏览器子集,以用于测试和抓取真实世界的 Web 应用程序。最新版本的 jsdom 需要 Node.js v14 或更高版本。原创 2022-10-05 20:44:01 · 2285 阅读 · 0 评论 -
记一个 puppeteer 点击视口不可见元素问题
当我们使用浏览器时,一般不可点击视口之外的元素必须首先滚动页面到需要点击的元素,才能点击。原创 2022-09-24 16:13:46 · 300 阅读 · 0 评论 -
puppeteer实战之处理超时
puppeteer大部分的操作都有 timeout 选项,用来设置最大等待的时间。原创 2022-09-10 22:40:15 · 2256 阅读 · 0 评论 -
babel实战之@babel/register
1.简介另一个使用 Babel 的方法是通过 require 钩子(hook)。require 钩子 将自身绑定到 node 的require模块上,并在运行时进行即时编译。 这和 CoffeeScript 的coffee-script/register类似。2.安装npm install @babel/core @babel/register --save-dev3.用法require("@babel/register");nod...原创 2021-02-15 16:19:02 · 1748 阅读 · 0 评论 -
node.js入门之 http.Agent 控制并发数量
文档:HTTP | Node.js v18.4.0 DocumentationAgent负责管理 HTTP 客户端的连接持久性和重用。为给定的主机和端口维护一个待处理请求队列,为每个请求重用套接字连接,直到队列为空此时套接字要么被销毁,要么被放入一个池中,以便再次用于请求到相同的主机和端口。是销毁还是池化取决于 keepAlive 选项。池连接启用了 TCP Keep-Alive,但服务器仍可能关闭空闲连接,此时将从池中删除并且当对该主机和端口发出新的 HTTP 请求时将建立新连接。服务器也可能拒绝允许同一原创 2022-06-26 18:12:56 · 795 阅读 · 0 评论 -
axios入门之处理重定向
axios默认情况下,会自动处理302和304重定向,此时请求会获取重定向之后的结果maxRedirects用于配置axios自动处理的重定向次数,为0则不处理重定向axios默认把302作为错误处理,所以会抛出一个错误到catch方法可以修改状态验证函数来使302变成正常的响应码...原创 2022-06-26 17:35:10 · 5019 阅读 · 0 评论 -
axios入门之响应类型
axios请求配置可以设置响应类型默认的响应类型和content-type有关,text/plain 类型解析为 stringapplication/json会被解析为对象stream类型会返回 IncomingMessage 类型原创 2022-06-26 14:54:48 · 1739 阅读 · 0 评论 -
axios入门之 API
axios(config) 用于直接发送请求重载方法,把 url参数单独提出来还有以下请求方法别名:使用别名方法时,不需要在config中指定 method、url、data可以使用自定义配置创建一个新的 axios 实例。实例包含以下方法:指定配置将与实例配置合并只有url是必需的。GET如果method未指定,请求将默认为。 url:请求url,可以是相对baseURL的 method:请求方法,默认是GET baseURL:基础URL transfor原创 2022-06-26 00:35:22 · 464 阅读 · 0 评论 -
axios入门之简介
文档:Getting Started | Axios DocsAxios 是一个基于Promise 的node.js和浏览器HTTP 客户端。它是同构的,可以在浏览器和 nodejs 中使用相同代码运行。在服务器端它使用node.js本机 http模块,而在浏览器使用 XMLHttpRequests。可以使用npm包在浏览器端可以使用 CDN 引入查询参数可以在 params 中传入还可以使用 async / await默认的POST请求类型是...原创 2022-06-25 23:48:16 · 105 阅读 · 0 评论 -
web入门之 Promise API
文档:Promise - JavaScript | MDNUsing Promises - JavaScript | MDNPromise 对象用于表示一个异步操作的最终完成(或失败)及其结果值。在 Web Worker 中可用Promise 对象代表一个不一定已知值的代理。把异步操作返回值或者失败原因和处理程序关联起来这样异步方法可以像同步方法那样返回值,并不会返回最终值,而是返回一个 promisePromise 必然处于以下几种状态:待定状态的 Promise 对象要么会通过一个值被兑现,要么会通过一原创 2022-06-25 16:25:28 · 416 阅读 · 0 评论 -
puppeteer入门之 Page 类
文档:puppeteer/api.md at main · puppeteer/puppeteer · GitHubPage 提供了与 Chromium 中的单个选项卡或扩展背景页面交互的方法。一个Browser实例可能有多个Page实例。page可以响应以下事件 close:页面关闭时发出。 console:调用console方法时发出,如果页面抛出错误或警告,也会发出。 dialog:出现对话框时发出,如alert、prompt、confirm、beforeunload domcon原创 2022-06-11 18:51:34 · 774 阅读 · 0 评论 -
puppeteer入门之 BrowserContext 类
文档:puppeteer/api.md at main · puppeteer/puppeteer · GitHubBrowserContexts 提供了一种操作多个独立浏览器会话的方法。启动浏览器时,使用一个默认 BrowserContext。browser.newPage()方法在默认浏览器上下文中创建一个页面。如果页面打开另一个页面,通过window.open,弹出窗口将属于父页面的浏览器上下文。Puppeteer 允许创建隐身浏览器上下文隐身浏览器上下文不会将任何浏览数据写入磁盘。createInc原创 2022-06-11 12:37:58 · 704 阅读 · 0 评论 -
puppeteer入门之 Browser 类
文档:puppeteer/api.md at main · puppeteer/puppeteer · GitHub通过puppeteer.launch或 puppeteer.connect 连接到 Chromium 实例时会创建一个浏览器实例返回浏览器内所有打开页面的数组。在多个浏览器上下文的情况下,返回一个包含所有上下文页面的数组 不可见的页面,如 background_page ,将不会被列出,可以通过 Target.page找到创建浏览器时会有一个默认的页面在默认浏览器上下文里创建一个新原创 2022-06-11 00:42:37 · 560 阅读 · 0 评论 -
puppeteer入门之 BrowserFetcher 类
文档:https://github.com/puppeteer/puppeteer/blob/main/docs/api.md#class-browserfetcherBrowserFetcher 可以下载和管理不同版本的 Chromium 和 Firefox。BrowserFetcher 对指定 Chromium 精确版本的修订字符串进行操作在 Firefox 中,BrowserFetcher 下载 Firefox Nightly 并在版本号上运行,例如"75".BrowserFetc原创 2022-06-10 23:11:39 · 446 阅读 · 0 评论 -
puppeteer入门之 Puppeteer 类
文档:puppeteer/api.md at main · puppeteer/puppeteer · GitHubPuppeteer 模块提供了一种启动 Chromium 实例的方法。主要的类型是 Puppeteer 和 PuppeteerNode而puppeteer模块的导出实际上是 PuppeteerNode ClassPuppeteerNode的构造函数参数是一组设置 projectRoot:浏览器根目录 preferredRevision:优先使用版本 productNam原创 2022-06-09 22:16:48 · 304 阅读 · 0 评论 -
puppeteer入门之使用扩展程序
文档:puppeteer/api.md at main · puppeteer/puppeteer · GitHubPuppeteer 可用于测试 Chrome 扩展。Chrome / Chromium 中的扩展程序目前仅在非无头模式和实验性 Chrome 无头模式下工作。创建 my-extension 目录,创建一个 manifest.json 清单文件name:扩展的名称创建一个 hello.html 作为扩展的页面创建一个background.js来加载扩展页面 --load原创 2022-06-03 16:25:47 · 627 阅读 · 0 评论 -
puppeteer入门之环境变量
文档:puppeteer/api.md at main · puppeteer/puppeteer · GitHubPuppeteer 会寻找某些环境变量来帮助其操作。如果在安装步骤中没有找到它们,则会从npm config使用这些变量的小写变体。HTTP_PROXY, HTTPS_PROXY, NO_PROXY:定义用于下载和运行浏览器的 HTTP 代理设置。PUPPETEER_SKIP_CHROMIUM_DOWNLOAD:不要在安装步骤中下载 Chromium。PUPPETEER_TMP_DIR-原创 2022-06-03 15:27:56 · 1026 阅读 · 0 评论 -
adonis命令模块学习笔记
基本类(文件):adonis命令脚本,bin目录下Kernel类,用来暂时注册命令并且执行命令最外层Command类,Kernel类直接包含的对象,adonis自己的命令类,包含各种执行命令相关方法Commander类(在commander模块中也叫Command类):Command类的属性,是一个事件发射器1.adonis脚本const path = requir原创 2017-12-12 17:49:02 · 1922 阅读 · 0 评论 -
adonis命令new
new 命令位于@adonisjs/cli/src/Commands/New目录下,其中step目录下包含了执行命令的各个步骤@adonisjs/cli/src/Commands/New/index.js://处理方法,获取选项当中的name属性,即项目名称 async handle ({ name }, options) {//获取新建项目各个步骤 const steps原创 2017-12-12 17:53:48 · 387 阅读 · 0 评论 -
adonis命令serve
adonis serve命令在@adonisjs/cli/src/Commands/Serve/index.js文件//处理方法 async handle (args, { dev, watch, debug, polling, domain }) {//当前目录下ace文件 const acePath = path.join(process.cwd(), 'ace')//se原创 2017-12-16 22:13:49 · 538 阅读 · 0 评论 -
adonis异常处理
adonis框架对请求生命周期中抛出的各种异常提供了处理方法以及用户自定义异常处理器的方式,有关的类为:Ignitor->_setupExceptionsHandler():点火器类,在启动程序时查找处理器类Server->_getExceptionHandler():服务器类查找对应异常的处理器方法Server->_handleException():处理异常的方法Server->han原创 2017-12-16 22:25:35 · 817 阅读 · 0 评论 -
electron入门之简介
文档:简介 | Electron1.简介Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。嵌入 Chromium 和 Node.js 到 二进制Electron 允许保持一个 JavaScript 代码库并创建 在Windows、macOS和Linux上运行的跨平台应用不需要原生开发经验。1.1 FiddleElectron Fiddle是由Electron开发并由其维护者支持的沙盒程序。强烈建议将其作为一个学原创 2021-12-12 00:22:54 · 623 阅读 · 0 评论 -
记一个nvm-windows问题 exit status 1: access denied
1.简介win11系统,最新版nvm-windows,安装了之后使用nvm use命令,报错:nvm use 12.10.0exit status 1: ��û���㹻��Ȩ��ִ�д˲�����后来发现实际上错误信息是access denied2.解决应该无法绕过,使用管理员权限即可...原创 2022-02-19 23:54:28 · 2797 阅读 · 3 评论 -
记一个npm安装问题 Refusing to delete xxx\.bin\xxx.cmd: is outside xxx\webpack and not a link
1.简介使用nvm多次切换node版本后,安装新的包时报错当前使用的node版本就是这个项目本身使用的版本删除npm cache目录也无效2.解决一般是由于不同npm版本安装行为不同引起的问题直接删除node_modules目录,全部重新安装即可...原创 2022-02-18 10:40:12 · 2908 阅读 · 0 评论 -
node.js使用axios-cookiejar-support保存cookie
地址:GitHub - 3846masa/axios-cookiejar-support: Add tough-cookie support to axios.GitHub - salesforce/tough-cookie: RFC6265 Cookies and CookieJar for Node.js1.简介axios-cookiejar-support添加了tough-cookie对 axios 的支持。axios:node.js和浏览器都可以使用的http请求工具包t原创 2022-02-14 23:06:57 · 1408 阅读 · 0 评论 -
node.js实战之windows平台编译
文档:node/BUILDING.md at master · nodejs/node · GitHub1.工具链node.js在windows上的工具链是 Windows 2012 R2 (x64) with Visual Studio 20192.先决条件python 3.10 Visual Studio 2019 基础的unix工具,Git for Windows 包括 Git Bash NetWide汇编器,用于 OpenSSL 汇编器模块python原创 2022-02-02 19:42:39 · 1067 阅读 · 0 评论 -
记一个eslint问题Failed to load plugin ‘@typescript-eslint‘ declared in ‘.eslintrc.js‘
1.简介eslint运行报错Error: Failed to load plugin '@typescript-eslint' declared in '.eslintrc.js': Cannot find module 'eslint/use-at-your-own-risk'Require stack:- D:\workspace\team\takewalke\ticket-scraper\node_modules\@typescript-eslint\eslint-plugin\..原创 2022-01-10 17:44:32 · 9336 阅读 · 2 评论 -
node.js入门之cluster集群模块
文档:Cluster | Node.js v17.3.0 Documentation1.简介node.js 的单个实例在单个线程中运行。为了利用多核系统,用户有时会想要启动一组 Node.js 进程来处理负载。集群模块允许轻松创建所有共享服务器端口的子进程。2.使用这是一个cluster模块的简单使用示例启动多个子进程服务器,并且在主进程通过负载均衡将请求分发给子进程处理import cluster from 'cluster';import http f原创 2022-01-05 23:22:12 · 784 阅读 · 0 评论 -
node.js入门之child_process子进程
文档:Child process | Node.js v17.3.0 Documentation1.简介child_process模块以类似于popen(3)但不完全相同的方式生成子进程。此功能主要由child_process.spawn()方法提供import { spawn } from 'child_process';const ls = spawn('ls', ['-lh', '/usr']);ls.stdout.on('data', (data) => {原创 2022-01-03 22:05:23 · 1875 阅读 · 0 评论 -
node.js入门之async_hooks
文档:Async hooks | Node.js v17.3.0 Documentation1.简介async_hooks模块提供了追踪异步资源的机制createHook方法创建监听异步资源生命周期的钩子函数所谓的异步资源指的是所有的异步操作,包含以下类型:FSEVENTWRAP, FSREQCALLBACK, GETADDRINFOREQWRAP, GETNAMEINFOREQWRAP, HTTPINCOMINGMESSAGE,HTTPCLIENTREQUEST, JSST原创 2022-01-02 23:50:28 · 644 阅读 · 0 评论 -
node.js入门之async_context异步上下文
文档:Asynchronous context tracking | Node.js v17.3.0 Documentation1.简介node.js本身是单线程的,当有多个请求进入且包含异步操作,则多个请求是交替执行代码的现在想要在每个请求中存储一个上下文,并且在这个请求处理流程中的每一步都能访问到它因为多个请求在一个线程中交替执行,所以上下文也不属于线程,当然也不属于全局对象AsyncLocalStorage允许在 Web 请求的整个生命周期或任何其他异步持续时间内存储数原创 2022-01-02 21:44:31 · 792 阅读 · 0 评论 -
node.js入门之ECMAScript 模块
文档:Modules: ECMAScript modules | Node.js v17.3.0 Documentation1.简介ECMAScript 模块是打包 JavaScript 代码以供重用的标准格式,它属于ECMAScript规范ECMAScript 模块使用export和import语句定义,示例// addTwo.mjsfunction addTwo(num) { return num + 2;}export { addTwo };// app.mj原创 2022-01-02 00:24:19 · 446 阅读 · 0 评论 -
node.js入门之CommonJS 模块
文档:Modules: CommonJS modules | Node.js v17.3.0 Documentation1.简介在node.js模块系统中,每个文件都被视为一个模块,如foo.jsconst prefix = 'foo'exports.say = (s) => console.log(prefix+s);exports.name = 'foo';通过在exports对象上添加属性,将函数和对象添加到模块的根 模块本地的变量是私有的,因为模块文件本身被包装原创 2022-01-01 20:51:53 · 331 阅读 · 0 评论 -
pdf.js使用入门
文档:PDF.js1.简介pdf.js是用于解析和呈现pdf的js库pdf.js包含三个模块:core:解析和解释二进制PDF 的地方。该层是所有后续层的基础。display:依赖core,并提供更易于使用的API来呈现 PDF 并从文档中获取其他信息。viewer:依赖display,是PDF查看器的UI...原创 2021-12-24 22:33:48 · 921 阅读 · 0 评论 -
node.js使用moment-timezone处理时区
仓库:GitHub - moment/moment-timezone: Timezone support for moment.js1.简介Moment-Timezone 是 Moment.js 的附加组件。moment-timezone本身依赖moment,并对它增加了一些功能2.获取固定数据moment.tz.names:返回了一个时区名称数组var moment = require('moment-timezone');console.log(moment.原创 2021-12-08 23:19:28 · 2229 阅读 · 0 评论 -
记一个node --max-old-space-size=10240问题
仓库:GitHub - endel/increase-memory-limit: Increase memory limit for local node binaries ("max-old-space-size")1.简介之前vscode内存不足,使用increase-memory-limit来增加node命令内存之后启动就报错'"node --max-old-space-size=10240"' 不是内部或外部命令,也不是可运行的程序或批处理文件。2.解决i原创 2021-09-18 18:17:44 · 7400 阅读 · 5 评论 -
puppeteer入门
仓库:https://github.com/puppeteer/puppeteer1.简介Puppeteer 是一个 Node 库,它提供了一个高级 API 来通过DevTools 协议控制 Chrome 或 Chromium。Puppeteer默认无头运行,但可以配置为运行完整(非无头)Chrome 或 Chromium。使用Puppeteer可以实现这些功能:生成页面的屏幕截图和 PDF。 抓取 SPA(单页应用程序)并生成预渲染内容(即“SSR”(服务器端渲染))。.原创 2021-07-20 23:04:21 · 194 阅读 · 0 评论 -
node.js使用static-server搭建简单的的http服务器
文档:https://github.com/nbluis/static-server1.简介一个简单的 http 服务器,用于从本地目录提供静态资源文件。有时我们需要把静态文件放在http服务器下进行测试使用nginx还需要修改配置,比较麻烦2.命令行用法安装npm -g install static-server到指定目录下执行static-serveroptions.index is now deprecated please use opt原创 2021-07-20 22:32:23 · 702 阅读 · 1 评论 -
记一个puppeteer使用问题Error: Chromium revision is not downloaded. Run “npm install“ or “yarn install“
1.简介本地安装后运行,发现没有下载chromium2.解决仔细看信息npm install puppeteer@10.1.0> puppeteer@10.1.0 install D:\workspace\team\takewalk\TakeWalks-FrontEnd\node_modules\puppeteer> node install.js**INFO** Skipping browser download. "PUPPETEER_SKIP_C..原创 2021-07-20 17:06:28 · 1807 阅读 · 0 评论 -
node.js入门之Buffer字节缓冲器使用
1.简介Buffer对象用于表示固定长度的字节序列。 许多 Node.js API 都支持Buffer。Buffer类是 JavaScript 的Uint8Array类的子类,且继承时带上了涵盖额外用例的方法。 只要支持Buffer的地方,Node.js API 都可以接受普通的Uint8Array。Buffer类在全局作用域中,因此无需使用require('buffer').Buffer。2.创建Buffer2.1 Buffer.alloc...原创 2021-05-16 14:49:08 · 706 阅读 · 0 评论