超级管理员

单元测试很重要,很多新兴的编程语言都是会内置对应的能力,但 Node.js 这块一直都是由社区来实现,前端同学耳熟能详的 Test Runner 有 Mocha、Jest。2022年04月19日正式发布的 Node.js 18.x ,终于,官方支持了 Test 能力。Fetch API 也被集成到这个版本中了。测试 API 接口在一定程度上代替 SuperTest 了。代码:import test from 'node:test'; import assert from 'assert/strict'; // 等价于 describe() test('asynchronous passing

2022-04-28    JavaScript    Node.js    前端    58
超级管理员

简介做爬虫解析 HTML,之前一直是用 cheerio,随着 jQuery 的渐行渐远,使用 cheerio 的类 jQuery API 已经成为一种负担, 我使用这个支持 Selectors API 的解析器 node-html-parser 来代替 cheerio。前后端的 HTML Selectors API 终于统一了。官方地址:https://www.npmjs.com/package/node-html-parser在 npmjs.com 的周下载量是:1,777,505。 cheerio 的周下载量是 6,696,323。执行速度上:cheerio :12.072

2022-02-28    JavaScript    Node.js    HTML    133
超级管理员

var assert = require("assert"); var request = require('supertest'); // describe('接口测试', async function () { const http = require('http'); const app = require('../../app'); const PORT = process.env.PORT || 3003; const SERVER = http.createServer(app.callback()); it('获取 API 版本信息', (done) = { let

2022-02-22    JavaScript    Node.js    135
超级管理员

Jest 简介Jest 是一个越来越流行的测试框架,使用率渐渐超过了Mocha, 这些项目都在使用 Jest:Babel、 TypeScript、 Node、 React、 Angular、 Vue 等等!Jest 的目标是在大部分 JavaScript 项目上实现开箱即用, 无需配置。从 it 到 expect - Jest 将整个工具包放在同一个 地方。好书写、好维护、非常方便。快速上手npm install --save-dev jest 下面我们开始给一个假定的函数写测试,这个函数的功能是两数相加。首先创建 sum.js 文件:function sum(a, b) { return

2022-02-22    JavaScript    Node.js    126
超级管理员

一,TypeScript 基本操作安装 TypeScript:npm install -g typescript 编写 test.ts 文件function greeter(person: string) { return "Hello, " + person; } let user = [0, 1, 2]; document.body.innerHTML = greeter(user); 编译 ts 文件生成 js 文件:tsc test.ts 提示:greeter.ts(7,26): error TS2345: Argument of type 'number[]' is no

2022-01-19    Node.js    139
超级管理员

问题引入很多 react 使用者在从 JS 迁移到 TS 时,可能会遇到这样一个问题:JS 引入 react 是这样的:// js import React from 'react' 而 TS 却是这样的:// ts import * as React from 'react' 如果直接在 TS 里改成 JS 一样的写法,在安装了 @types/react 的情况下,编辑器会抛出一个错误:此模块是使用 "export =" 声明的,在使用 "esModuleInterop" 标志时只能与默认导入一起使用。根据提示,在 tsconfig.json 中设置 compilerOptions.esMo

2022-01-18    Node.js    前端    134
超级管理员

一、N-API 开发方式介绍在 NAN 的开发方式下,一次编写好的代码在不同版本的 Node.js 下也需要重新编译,否则版本不符的话 Node.js 无法正常载入一个 C++ 扩展。即一次编写,到处编译。而 N-API 相较于 NAN 来说,它把 Node.js 的所有底层数据结构全部黑盒化,抽象成 N-API 当中的接口。不同版本的 Node.js 使用同样的接口,这些接口是稳定地 ABI 化的,即应用二进制接口(Application Binary Interface)。这使得在不同 Node.js 下,只要 ABI 的版本号一致,编译好的 C++ 扩展就可以直接使用,而不需要重新编译。

2021-12-30    Node.js    116
超级管理员

项目地址:https://www.npmjs.com/package/koa-csrf安装:npm install koa-csrf 需要配合session使用:// CSRF 防御 const CSRF = require('koa-csrf'); const csrfMD = new CSRF({ invalidSessionSecretMessage: 'Invalid session secret', invalidTokenMessage: 'Invalid CSRF token', invalidTokenStatusCode: 403, }); rou

2021-12-15    Node.js    100
超级管理员

一,进程和线程简介进程是资源分配的最小单位,线程是CPU调度的最小单位 进程:进程是一个有独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。进程是一种抽象的概念,一般定义是:进程由程序,数据集合和进程控制块三部分组成。(进程是资源分配的最小单位)。 线程:在早期的操作系统中并没有线程的概念,随着计算机的发展,为了应对进程之间的切换带来的巨大开销,就发明了线程,线程是程序执行中一个单一的顺序控制流程,一个进程可以有一个或多个线程,各个线程之间共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。(线程是c

2021-12-07    JavaScript    Node.js    97
超级管理员

实现websocket主要是两点,一个是协议的升级,再者就是数据包的解析与封装。看似简单,但是其实坑蛮多的,目前比较火的websocket框架有socket.io 和 ws吧.socketio/http://socket.io:43.5k star,不多说,业界权威龙头老大。(不过这实际上不是一个 WebSocket 库,而是一个实时 pub/sub 框架。简单地说,http://Socket.IO 只是包含 WebSocket 功能的一个框架,如果要使用该库作为 server 端的服务,则 client 也必须使用该库,因为它不是标准的 WebSocket 协议,而是基于 WebSocket

2021-12-02    Node.js    118
随机推荐
axios跨域访问
Nginx 报错 open "nginx/fastcgi_temp" failed Permission denied while reading upstream
macOS 文字转语音命令 say
CentOS8 使用 fail2ban 防止 sshd 被暴力破解
站着编程两年后我身体上的变化
node-sass 和 dart-sass 的区别
20170120 数位板 进步
20190104 手绘口罩女
防止表单重复提交的几种策略
Mysql无法启动 使用GPT Drive
QQ号

微信联系我

夜间模式切换
回到顶部