nodejs
Lcwai
有问题解决了,它就不复存在
展开
-
Error: ReferenceError: ReadableStream is not defined
midway项目在build完,docker启动时,莫名地报错Error: ReferenceError: ReadableStream is not defined,之前一直好好地,初时以为是新加的代码引起,后来排除了。查看了报错包在github上的issues,有7条记录,逐一查看后将里面提的方法都试了一遍,有些不知道是配置不对还是怎样,问题依旧。原创 2024-08-20 14:57:01 · 585 阅读 · 4 评论 -
react项目中需要条形码功能,安装react-barcode使用时报错
react项目中需要条形码功能,用yarn add安装react-barcode后,在项目中使用import Barcode from ‘react-barcode’,页面中一直白屏原创 2024-04-09 15:22:19 · 542 阅读 · 0 评论 -
记录一次服务器与微信公众号通讯和白名单配置的问题
阿里云服务器A(固定公网ipA)作为网关将请求转发到阿里云服务器B(无公网ip),两台服务器在同一区域同一内网原创 2024-02-05 10:55:24 · 502 阅读 · 0 评论 -
记录一次接近24万条数据导入Mysql的过程
根据削峰填谷的思想,今天尝试了一个新方法原创 2024-01-09 14:28:04 · 396 阅读 · 1 评论 -
获取uuid哪种方法效率最高
近期旁边的同事问我,获取uuid有什么方法?我随口就回答:用uuid包,因为一直都在用,感觉没啥问题。原创 2023-03-24 14:09:47 · 645 阅读 · 1 评论 -
解决uniapp插件robin-editor设置字体颜色和背景颜色报错的问题
今天在h5上使用uniapp开发时使用robin-editor,设置字体颜色和背景颜色报错原创 2022-06-23 14:10:44 · 593 阅读 · 0 评论 -
近期使用nodejs pinyin包时遇到的问题
虚拟机的linux、nodejs和npm相关参数为安装pinyin版本为2.11.2,本地调试没啥问题,开发好的程序通过云效用docker部署到服务器,但是cnpm i会报错。原创 2022-06-08 14:05:48 · 1620 阅读 · 0 评论 -
ant design pro v5 git commit时报ERROR invalid commit message format的解决方法
ant design pro v5 git commit时报错的解决方法原创 2022-03-25 12:01:51 · 6076 阅读 · 0 评论 -
[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 · 5182 阅读 · 0 评论 -
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 · 669 阅读 · 0 评论 -
阿里云签名机制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 · 969 阅读 · 0 评论 -
使用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 · 3158 阅读 · 0 评论 -
试用阿里云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 · 690 阅读 · 0 评论 -
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 · 484 阅读 · 0 评论 -
mongodb使用aggregation聚合geonear和条件过滤时遇到的问题
公司的内部项目,不方便截图显示,请见谅运行环境:nodejs v14.16.0MongoDB V4.2.3问题有一个需求,要通过接口查询客户的列表,数据里面带有形如gps:{X:118, y: 23}的坐标,微信小程序度使用此接口时,前端会将当前坐标、范围和一些查询条件传进来,接口要由近到远查询出相应的客户列表,并返回具体距离。PC端后台,则只有普通查询条件,接口返回相关数据。早两天,产品说在小程序端加个距离不限的选项,其实就是距离设大点,设到3000km,全中国都覆盖了,接口早就预留,不用改原创 2021-03-24 14:27:47 · 864 阅读 · 0 评论 -
第一次接触docker-compose,轻松解决容器编排的问题
这星期有项目要上线,接触到Docker部署,学会了编写Dockerfile文件,放到本地部署的虚拟机上面玩。一个容器是nodejs程序,玩得很顺利,能正常访问mongo的测试库;再用Docker部署了一个mongo数据库,用VS连接到数据库是正常的,接口正常。再用Robo 3T连接Docker部署的Mongo也是正常的。将程序放到虚拟机,build完之后,启动容器,用postman访问,接口不能访问。看log,发现nodejs在容器里访问mongodb显示超时。明明本机访问都是没有问题的,怎么会不行的原创 2020-10-29 17:53:53 · 145 阅读 · 0 评论 -
使用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 · 645 阅读 · 0 评论 -
使用 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 · 930 阅读 · 1 评论 -
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 · 371 阅读 · 0 评论 -
彻底理解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 · 1480 阅读 · 0 评论 -
使用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 · 844 阅读 · 0 评论 -
如何优雅快速在多层对象中查找是否包含需要的key或者value
工作中经常遇到多层对象中查找是否包含需要key或者value的问题,通过手写循环语句,虽然可以解决问题,但是如何快速优雅地解决呢?基本思路是先从第一层数据查找,如何发现里面包含对象,进去继续查找,直到找到为止。建议使用递归的方法,以减少编程量,但是使用递归法时,条件必须写好,要不好容易会进入死循环,我有一次试过,直接将CPU全部占完,电脑无法动弹。写法参考:...原创 2020-09-08 15:27:06 · 744 阅读 · 0 评论 -
异步调用的update函数改为同步,循环后统一返回结果
mongodb批量修改数据,其实有内部方法,db.[collectionName].update({查询器},{修改器}),不是这里讨论的重点。今天要讨论的是,异步调用的update函数改为同步,逐条更新后统一返回结果。因为update方法是异步函数,所以要用点技巧来编写。首先明白异步转同步大概有两种方法:async/await和then。平常使用时两个方法都可以,但是使用async.auto,各函数串行调用时,特别是带有for循环的调用中,建议使用async/await。function upd原创 2020-09-03 15:13:53 · 467 阅读 · 0 评论 -
判断带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 · 2907 阅读 · 0 评论 -
通过nodejs对mongodb的写入和查询性能进行的测试
近期对mongodb的写入和查询性能做了一个分析,前提是各个接口独立测试,没有进行复合测试,即读写接口同时测试等情况。总结了以下几点内容:1.从数据上显示写入或者编辑数据的性能不受数据条数影响,平均时间在15-20ms左右。2.数据超30条后,复杂的语句,例如带模糊查询,范围查询和排序操作耗时尤为明显,即使建了复合索引,性能提升也是有限的。删除上面提到的查询后,性能明显提升。优化思路:数据量大时尽量使用精准查询,避免使用以上查询,但是有时业务需要也是没有办法。如果耗时太久的接口,可以采用定期转移原创 2020-08-17 12:12:52 · 590 阅读 · 0 评论 -
《Node与Express开发》发现了一些错误
这本书相信好多人都不陌生,我在学习的时候发现了一个错误。在第65页,红箭头所指的地方meadowlark.js如下配置按照书本所示的,我在本地运行时发现没有值输出代码修改成以下的,模板就可以显示出相应的值...原创 2020-06-30 10:00:52 · 266 阅读 · 0 评论 -
const 不是一成不变,使用时要注意
1、定义一个常量const str = 'hi'console.log(str)str = 'hi wai'console.log(str)结果:报错,这是正常的nodejs.TypeError: Assignment to constant variable.对常量的赋值2、定义一个jsonconst json = { title: 'hi', des: 'my ...原创 2019-09-11 17:19:18 · 290 阅读 · 0 评论 -
eggjs的post跨域报405 method not allowed错误
近期用uni-app开发的应用,在小程序中没有任何问题,包括调试、上线,但是在google chrome调试网页版时就出现接口报405 method not allowed错误。按照网上的方法在nginx跨域请求cors配置如下:location / { add_header 'Access-Control-Allow-Origin' 'https://api....原创 2019-04-03 17:31:58 · 1462 阅读 · 0 评论 -
uni-app使用时需注意的一些问题
#一、组件做全局引入时要注意最近在使用uni-app开发微信小程序,开头偷懒,组件做了全局引入,但是随着组件的增加,微信小程序报main.js超过500KB(实际大小为549KB),后来跟踪发现是因为组件做了全局引入影响,改为按需引入后,main.js缩小至123KB,warning解除。原文链接...原创 2019-02-18 22:43:54 · 3030 阅读 · 0 评论 -
Nodejs Client for FastDFS 使用中的遇到的问题
#使用获取storage信息函数fdfs.listStorages('group1').then(function(storages) { console.log(storages);}).catch(function(err) { console.error(err);});#报错(node:6560) Warning: a promise was rejected ...原创 2018-12-13 10:14:43 · 897 阅读 · 0 评论