admin

使用 url.parse() 函数转换'https://www.yuque.com!.evil.com' 'https://www.yuque.com%0a.evil.com' 会变成:'https://www.yuque.com/!.evil.com' 'https://www.yuque.com/%0a.evil.com' 可以看到 legacy API 并不认为 ! 字符属于域名的一部分,所以原始的 www.yuque.com!.evil.com 域名其实是非法的,而为了不抛异常,legacy API 尝试对它进行了一次转换,把它当成 www.yuque.com/!.evil.com 来

2022-11-07 JavaScript Node.js 前端 90
admin

什么接口幂等性幂等性原本是数学中的含义,表达式的是N次变换与1次变换的结果相同。RESTFul API 中的幂等性是指调用某个方法1次或N次对资源产生的影响结果都是相同的。比如,RESTFul API 中的 GET 方法是查询资源,不会对资源产生影响,所以它是符合幂等性的;再比如,RESTful API 中的 DELETE 方法是查询数据,每次都应该返回 status=204。接口符合幂等性有什么用处接口的幂等性确保了无论调用1次还是N次对资源的影响都是相同的,这在某些场合下是非常有用的。举例:一个订单,多次执行支付接口,只应该付一次钱。HTTP方法的幂等性与安全性RESTful 设计本质上使

2022-10-09 Node.js 后端 485
admin

MySQL连接池,通过将大量短连接转化为少量的长连接,从而提高整个系统的吞吐率。一般 ORM 都会对连接池进行封装,只提供简洁的接口供上层使用。在上层看来,并不知道底层是否使用了连接池(甚至连访问数据库的IP和Port都不知道),只知道调用了一个接口,执行了指定的SQL语句,并返回执行状态和执行结果。在使用 conn = pool.getConnection() 获取一个链接,然后执行事务的过程中,执行了一次 pool.execute(sql),程序就甭了,原因是 pool.execute(),会自动获取连接池中的链接,执行完 sql 以后,就会立即释放。在 conn.release() 之前

2022-09-16 MySQL Node.js 297
admin

使用 MySQL 线程池对压力测试的影响,下面使用两个文件,分别测试一下。代码:test1.js 使用了 MySQL 线程池:export async function test1(ctx) { let pool = dbUtil.getPool(); let connection = await pool.getConnection(); let [rows] = await connection.query('select * from tb_user limit 10'); connection.release(); } test2.js 未使用 MySQL 线程池:export

2022-08-27 MySQL Node.js 开发工具 144
admin

ReferenceError: __dirname is not defined in ES module scopeThis file is being treated as an ES module because it has a '.js' file extension and '/Users/ice/www/next/package.json' contains "type": "module". To treat it as a CommonJS script, rename it to use the '.cjs' file extension.解决办法:import path

2022-07-02 Node.js 140
admin

1 console.log在console.log()中,可以用%s设置字符串,%i设置数字,%c设置自定义样式,console.log()接受的两个参数,前者是描述性的语言,而第二个参数是与第一个参数位置对应的字符console.log(' %c %s %s %s', 'color: yellow; background-color: black;', '–', '测试信息', '–');2 console.table()很多的时候,你可能会有一堆对象需要查看。可以用console.log把每一个对象都输出出来,也可以用console.table语句直接把所有的对象都直接输出成为一个表格3

2022-06-23 JavaScript Node.js 前端 455
admin

方法一,await conn.query(`START TRANSACTION`); await conn.execute(`INSERT INTO user VALUES (?, ?, ?, ?, ?, ?)`, [...userDetails]); await conn.execute(`INSERT INTO account VALUES (?, ?, ?, ?, ?, ?)`, [...accountDetails]); await conn.query(`COMMIT`); START TRANSACTION 和 COMMIT 不可以使用 conn.execute,MySQL lim

2022-06-15 MySQL Node.js 126
admin

单元测试很重要,很多新兴的编程语言都是会内置对应的能力,但 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 前端 394
admin

简介做爬虫解析 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 520
admin

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 470
ngtwewy
随机推荐
使用 svg 作为背景图片
ReferenceError: __dirname is not defined in ES module scope
esModuleInterop 到底做了什么?
Debian11 安装笔记4:安装常用软件
Linux 下 configure、make 、make test/make check、sudo make install 的作用
macOS 生成 icns 图标
Node.js 18.x 开始支持内置单元测试
MySQL 的 sql_mode 模式介绍:为什么 MySQL 中 int,float,double 类型字段插入空字符时自动转为0
WordPress 按自定义排序的两种方法
MySQL DATETIME 时间查询和转换

微信联系我

夜间模式切换
回到顶部