- 博客(53)
- 资源 (2)
- 收藏
- 关注
原创 Rust与Javascript的使用对比
Rust 中的一个属性(attribute),用于自动生成实现 `Debug` trait 的代码。该属性可以应用于结构体、枚举和联合体等类型。
2024-10-24 10:59:56
515
原创 uniapp的video组件在ios中部分无法播放
再仔细查看日志,发现请求头是iPhone,想来想去,用了一个笨的方法,下载一个能播放与那个不能播放的视频到本地,用格式工厂提取两者的视频详情信息。
2024-09-29 11:59:28
874
原创 Mysql JSON结果不能IN
开发中遇到这样一种场景,举例说音乐的专辑包含歌曲,假设歌曲放在music表,专辑放在album表,而专辑与歌曲的绑定关系,要么就存一个关联表music_ablum,要么就存一个json字段(music_list)在album表。初时以为哪里写错了,检查了一轮也没发现哪里的问题,用CAST(JSON AS CHAR)转换了还是没果,再加狠招,将SUBSTRING将数据截取成标准IN查询的样子。
2024-09-14 15:47:44
301
原创 Error: ReferenceError: ReadableStream is not defined
midway项目在build完,docker启动时,莫名地报错Error: ReferenceError: ReadableStream is not defined,之前一直好好地,初时以为是新加的代码引起,后来排除了。查看了报错包在github上的issues,有7条记录,逐一查看后将里面提的方法都试了一遍,有些不知道是配置不对还是怎样,问题依旧。
2024-08-20 14:57:01
4623
6
原创 react项目中需要条形码功能,安装react-barcode使用时报错
react项目中需要条形码功能,用yarn add安装react-barcode后,在项目中使用import Barcode from ‘react-barcode’,页面中一直白屏
2024-04-09 15:22:19
632
原创 记录一次服务器与微信公众号通讯和白名单配置的问题
阿里云服务器A(固定公网ipA)作为网关将请求转发到阿里云服务器B(无公网ip),两台服务器在同一区域同一内网
2024-02-05 10:55:24
648
原创 本人用uniapp做微信公众号开发易错点整理
wxUpdateAppMessageShareData和updateTimelineShareData,即自定义“分享给朋友”及“分享到QQ”按钮的分享内容和自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容功能,数据填齐了,用原来的链接打开网页,在微信里分享给朋友,结果还是没有样式的,只见到链接。以为哪里出问题,检查了几次,又将微信提供的旧接口接上去,问题依旧,后来想来想去,将链接发到公众号,在公众号里打开,分享就正常了。近期因业务需要对接微信公众号的功能,以此文记录自己实践中一些易错点。
2023-07-31 17:51:28
496
原创 解决uniapp插件robin-editor设置字体颜色和背景颜色报错的问题
今天在h5上使用uniapp开发时使用robin-editor,设置字体颜色和背景颜色报错
2022-06-23 14:10:44
676
原创 近期使用nodejs pinyin包时遇到的问题
虚拟机的linux、nodejs和npm相关参数为安装pinyin版本为2.11.2,本地调试没啥问题,开发好的程序通过云效用docker部署到服务器,但是cnpm i会报错。
2022-06-08 14:05:48
1892
原创 ant design pro v5 git commit时报ERROR invalid commit message format的解决方法
ant design pro v5 git commit时报错的解决方法
2022-03-25 12:01:51
6655
原创 MySQL小数存储时不建议使用double
今天做项目时遇到一个比较奇怪的情况,某个存储过程在数据表中取值,表中的该值(amount_second)的类型是double(13,2),存储的值为-3.22。直接用语句读取时没有此问题,取出的值为-3.22,但是使用存储过程取出值为存储过程如下:CREATE DEFINER=`cashuser`@`%` PROCEDURE `select1`()BEGIN DECLARE selectsql VARCHAR(4001); SET selectsql = "SELECT chang
2021-12-08 18:08:51
1663
原创 [ioredis] Unhandled error event: Error: connect ETIMEDOUT报错的解决办法
之前项目中redis初始化是使用@Init 装饰器来处理,近期配置中心上线后,配置将统一到配置中心获取。@Init 就不能再使用了,因为其先于远程配置获取,redis初始化要改为远程配置获取完成后才做。偶尔会报[ioredis] Unhandled error event: Error: connect ETIMEDOUT,部分文章说要将connectTimeout设置成10000,但是查看文档后,默认设置就是如此。所以不合理。看完文档后发现是lazyConnect设置成true就不再报错。完美解决
2021-12-01 18:24:46
5563
原创 nodejs导出csv文件时遇到的问题总结
近期项目中需要数据导出功能,之前的项目使用过exceljs,觉得挺不错。就将之前写过的代码抽取出来,封装成通用接口。然后在electron端主进程编写好调用程序,给前端调用时,前端反映下载打开的csv文件是乱码。What???我本地测试过没有呢,马上跑去他的机子去看下究竟,原来他用的MS office,还真有问题(我是用wps,显示正常)。主要的文件编码方式有:ANSI、UTF-8、UTF-8无BOM、UCS、UCS-2 Big/Little Endian、Unicode查看https://gi
2021-11-29 17:16:12
762
原创 本人在使用Electron和打Arm包时遇到的问题及解决方法
这段时间公司项目需要做Electron开发,我负责部分主进程开发和打包工作。1、不能跨系统来打包即不能在windows下打linux的包,需要用vmware安装一个有界面的linux操作系统来完成此工作,可以装ubuntu 20。2、打linux包的命令 "package:linux": "rm -rf src/dist && yarn build && electron-builder build --linux", "package:armv7l":
2021-11-26 09:18:56
4459
原创 阿里云签名机制nodejs实现时遇到的小插曲
近期项目需要对接阿里云的api,用接口调用时需要使用签名机制。文档是明明白白的,自己接入时遇到些小插曲。1、时间问题,使用了几种方法转换都没成功Message: 'The input parameter "Timestamp" that is mandatory for processing this request is not supplied.'最后发现下面这个转换才是正确moment(new Date()).utcOffset(0).format()2、percentEncode时漏
2021-11-16 17:26:21
1058
原创 使用Jest做单元测试时遇到的问题
近期对一个项目写单元测试后,运行时有以下提示:Jest did not exit one second after the test run has completed.This usually means that there are asynchronous operations that weren’t stopped in your tests. Consider running Jest with --detectOpenHandles to troubleshoot this issue.
2021-11-11 11:42:20
3326
原创 ubuntu20.04.3 LTS安装cgi运行环境
用了几天时间学习了C++的简单使用,学到最后C++与web的结合,生成了cgi文件后想在浏览器直接浏览,需要apache提供对外能力。1、安装apache2sudo apt install apache2安装完成后查看状态sudo systemctl status apache22、建目录su rootcd /var/wwwmkdir cgi-bin3、修改配置cd /etc/apache2/conf-enabledvi serve-cgi-bin.conf修改成,指向刚
2021-11-08 15:07:56
800
原创 试用阿里云API网关OpenID Connect中业务API使用JWT认证插件遇到的问题
一、缘由近期试用阿里云API网关作为中转,开始时安全认证方式选择无认证。好快就能接通。二、升级安全方式再将安全认证方式调整为OpenID Connect,模式选择业务API。要求配置一个Token对应的参数名称,初时以为是token名,就随便起了个mytoken。配置好之后,用postman请求,报错。Status :400 Bad RequestX-Ca-Error-Code :I400JRX-Ca-Error-Message : JWT required header:X-Token mi
2021-04-25 14:52:57
767
原创 Mongodb的geoNear两种写法精准度比较
近期在研究geoNear的写法时发现它有平面和曲面的计算方法。索引是用2d索引起点:113.389891,22.933699终点:113.389853,22.934714用百度地图测量谷歌地图写法1{near: data.gps, spherical: true, distanceField: "gps", distanceMultiplier: 6371, maxDistance: distance/6371}程序计算的结果:112.12m写法2{near: data.gps,
2021-03-24 15:42:21
538
原创 mongodb使用aggregation聚合geonear和条件过滤时遇到的问题
公司的内部项目,不方便截图显示,请见谅运行环境:nodejs v14.16.0MongoDB V4.2.3问题有一个需求,要通过接口查询客户的列表,数据里面带有形如gps:{X:118, y: 23}的坐标,微信小程序度使用此接口时,前端会将当前坐标、范围和一些查询条件传进来,接口要由近到远查询出相应的客户列表,并返回具体距离。PC端后台,则只有普通查询条件,接口返回相关数据。早两天,产品说在小程序端加个距离不限的选项,其实就是距离设大点,设到3000km,全中国都覆盖了,接口早就预留,不用改
2021-03-24 14:27:47
987
原创 第一次接触docker-compose,轻松解决容器编排的问题
这星期有项目要上线,接触到Docker部署,学会了编写Dockerfile文件,放到本地部署的虚拟机上面玩。一个容器是nodejs程序,玩得很顺利,能正常访问mongo的测试库;再用Docker部署了一个mongo数据库,用VS连接到数据库是正常的,接口正常。再用Robo 3T连接Docker部署的Mongo也是正常的。将程序放到虚拟机,build完之后,启动容器,用postman访问,接口不能访问。看log,发现nodejs在容器里访问mongodb显示超时。明明本机访问都是没有问题的,怎么会不行的
2020-10-29 17:53:53
184
原创 Docker常用的操作汇总
一、Docker服务重启service docker restart二、Docker搜索需要的镜像docker search [镜像名]三、Docker拉取镜像docker pull node#指定版本镜像docker pull node:10.15.3-alpine镜像版本号可以到https://hub.docker.com/查找四、查看已有的镜像docker images五、强制删除已有镜像docker rmi [镜像ID] -f六、查看已有的容器(运行与停止的)docke
2020-10-27 17:11:45
253
原创 使用async.whilst要注意的地方
近期在review以前同事的源码时,发现他使用了async.whilst方法。仿效其在本地调试时,发现程序死活都不执行,研究了半天,终于解开了谜团。首先了解一下whilst的参数whilst接受三个参数,第一个为判断函数,只有在该函数返回时,第二个参数参会执行。第二个参数便是表达核心逻辑的函数。第三个则是第一个参数返回false之后的回调函数。async.whilst(test, fn, function(err, n){})注意async包的版本我同事那源码是比较早之前写的,用的是2.6.2的包
2020-10-24 15:17:42
683
原创 使用 Got包的一些体会
近期使用Got包时,发现一些神奇的事情,如果大家有遇到的话,欢迎交流。形如此函数:Got: function(seqno, gotbody, callback) { let {method, url, options} = gotbody; options.timeout = 200 got[method](url, options).then(response => { callba
2020-10-23 17:28:18
973
1
原创 Mongodb查找最大值总结
在上一篇文章(https://blog.youkuaiyun.com/Wai_Leung/article/details/109179767)提到Mongodb中的Max key不是用来查找最大值的,那么实际应用中该如何查找呢?方法一:对目标值按大到小排序后,再取出第一条具体查询语句是db.getCollection('collection1').find().sort({ id: -1}).limit(1)在Robo 3T中运行,有10万条数据集中,...
2020-10-20 14:25:19
12071
2
原创 Mongodb的Min key和Max key是能查找最大最小值的新功能吗?
今天,在一个偶然的机会,在Mongodb的文档中看到$type(https://docs.mongodb.com/manual/reference/operator/query/type/),试了一下其中的功能,觉得不错,在列表最后TypeNumberAliasNotesMin key-1“minKey”Max key127“maxKey”在Robo 3T中对一个collection进行查找db.getCollection('c1').find({"id"
2020-10-20 14:13:25
1698
原创 docker容器中bash: top: command not found的解决方法
新部署了一个MySQL的docker容器,插入10万测试数据时,想看下内存和CPU的占用情况,进入容器后运行top,报错bash: top: command not found,docker果然是最简形式,没有多余的东西。那就apt-get update一下呗,继续报错root@ad7556******:/# apt-get updateErr:1 http://deb.debian.org/debian buster InRelease
2020-10-16 13:50:37
8657
3
原创 async/await并行编程总结
日常使用async/await这对好基友的时候,多数是用一函数把它们包起来或者直接使用,如以下写法function getName () { return new Promise((resolve, reject)=>{ setTimeout(()=>{ resolve('lcwai') }, 2000) })}function getId () { return new Promise((resolve, r
2020-10-13 10:10:04
405
原创 彻底理解Nodejs中callback、promise、yield、async、await
callback是Nodejs里最经典写法const fs = require('fs')const fileName = 'hello.md'function fsReadFile (file, cb) { fs.readFile(file, 'utf8', function(err, data) { if (err == null) { // console.log(data) // return data
2020-10-10 11:22:13
1607
原创 使用chai对express进行单元测试时报错 TypeError: app.address is not a function
今天在使用chai对express进行单元测试时,报错 TypeError: app.address is not a functionapp.js文件内容const express = require('express')const bodyParser = require('body-parser')const app = express()const port = 3000const routes = require('./routes/index')// 定义数据解析器app.use
2020-09-30 14:56:11
901
原创 解决 MySQL存储过程插入中文的错误,代码: 1366 Incorrect string value: ‘\xE6\x88\x91%$#...‘
在调用以前同事的一个接口时,发现使用MySQL的存储过程插入中文时报错。错误代码: 1366Incorrect string value: '\xE6\x88\x91%$#...' for column 'title' at row 1在title中插入英文和数字都没问题,当包含中文时就会报错。初时以为数据库字符集的问题。SHOW VARIABLES LIKE 'character%';SHOW VARIABLES LIKE 'collation_%';发现character_set_da
2020-09-18 14:01:50
1000
2
原创 如何优雅快速在多层对象中查找是否包含需要的key或者value
工作中经常遇到多层对象中查找是否包含需要key或者value的问题,通过手写循环语句,虽然可以解决问题,但是如何快速优雅地解决呢?基本思路是先从第一层数据查找,如何发现里面包含对象,进去继续查找,直到找到为止。建议使用递归的方法,以减少编程量,但是使用递归法时,条件必须写好,要不好容易会进入死循环,我有一次试过,直接将CPU全部占完,电脑无法动弹。写法参考:...
2020-09-08 15:27:06
821
原创 异步调用的update函数改为同步,循环后统一返回结果
mongodb批量修改数据,其实有内部方法,db.[collectionName].update({查询器},{修改器}),不是这里讨论的重点。今天要讨论的是,异步调用的update函数改为同步,逐条更新后统一返回结果。因为update方法是异步函数,所以要用点技巧来编写。首先明白异步转同步大概有两种方法:async/await和then。平常使用时两个方法都可以,但是使用async.auto,各函数串行调用时,特别是带有for循环的调用中,建议使用async/await。function upd
2020-09-03 15:13:53
504
原创 判断带json的数组是否有重复项
经常在项目中遇到带json的数组需要判断是否有重复项,形如:[{k:1, m: 2}, {k:1, m: 2}]此情况无法通过indexOf或者==来判断写了一个函数,以解决此问题 checkArrayRepeat: function(arr) { if (arr.length <= 0) return false; let s = new Set(); arr.map( v => { s.add(JSON.
2020-08-18 12:12:46
3035
原创 通过nodejs对mongodb的写入和查询性能进行的测试
近期对mongodb的写入和查询性能做了一个分析,前提是各个接口独立测试,没有进行复合测试,即读写接口同时测试等情况。总结了以下几点内容:1.从数据上显示写入或者编辑数据的性能不受数据条数影响,平均时间在15-20ms左右。2.数据超30条后,复杂的语句,例如带模糊查询,范围查询和排序操作耗时尤为明显,即使建了复合索引,性能提升也是有限的。删除上面提到的查询后,性能明显提升。优化思路:数据量大时尽量使用精准查询,避免使用以上查询,但是有时业务需要也是没有办法。如果耗时太久的接口,可以采用定期转移
2020-08-17 12:12:52
650
原创 通过Docker安装Gitlab,修改gitlab.rb后无法重启
通过Docker安装Gitlab-ce,命令如下docker run -d -p 8443:443 -p 8091:80 -p 222:22 --name gitlab --restart always -v /data1/gitlab/config:/etc/gitlab -v /data1/gitlab/logs:/var/log/gitlab -v /data1/gitlab/data:/var/opt/gitlab --privileged=true gitlab/gitlab-ce:lates
2020-07-16 15:56:28
3463
10
Discuz! X3版本QQ互联英文乱码显示的解决方法
2013-05-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人