
后端二三事
文章平均质量分 64
后端的事情,不大不小,不多不少,二三事而已
乾复道
公众号:乾复道在编程
终日乾乾,反复道也。坚守本心,方得始终。
编程的日常也会进行分享,与大家共同进步!
展开
-
Markdown语法-从基础到进阶
时代在进步,**越来越多的人和软件开始使用Markdown进行文字编辑**,其编辑方便性让很多人爱不释手。熟读这篇文章,让你成为markdown高手。原创 2023-01-31 10:28:29 · 1068 阅读 · 3 评论 -
身份证后四位是否唯一
众所周知,身份证是唯一的。那么身份证的后四位是否是唯一的?让我从非逻辑和逻辑的多方面给你唠唠。。。。原创 2022-10-23 15:03:53 · 3549 阅读 · 2 评论 -
关于割接9000W数据的一些事
大数据割接,不要怕,做好计划,明确目标,仔细记录,及时同步,做好数据回归验证,一切都是小问题原创 2022-09-28 14:25:53 · 730 阅读 · 6 评论 -
redis报错 Error getaddrinfo ENOTFOUND
Error getaddrinfo ENOTFOUND,redis连接报错,这个问题当你看完这篇文章,你会发现,自己怎么会在这里跌倒原创 2022-09-06 10:10:20 · 9685 阅读 · 4 评论 -
如何将整个项目按照eslint格式化
之前已经给大家分享了如何使用eslint进行代码格式化设置,但是很多朋友还不会对旧的代码进行全项目格式化。一个个文件格式化就失去了程序快捷的意义,所以,这里,分享给大家优雅格式化全项目的方法...原创 2022-09-01 10:11:24 · 1327 阅读 · 0 评论 -
如何写一个合格的API文档
我们看到的API接口形式有很多,你可以了解,但是,我只告诉你一种通用的,如果这你都做不到,别怪对方不验收你的文档原创 2022-08-31 09:51:39 · 8077 阅读 · 0 评论 -
你还不会写API文档吗
都22年了,还有人不知道什么是API?还有人不会用API?原创 2022-08-31 09:47:45 · 233 阅读 · 0 评论 -
javascript算法排序之选择排序
看似选择排序和冒泡排序实现逻辑相同,且均能实现排序功能,但是实则在运算速率上不可同日而语,这就是基础算法的魅力。原创 2022-08-14 12:13:39 · 420 阅读 · 0 评论 -
javascript算法排序之冒泡排序
不是所有的深究都是有意义的,但是你想深究的话,它一定是有意义的。了解基础的算法,有利于自己的在开发过程中做出更好的优化!原创 2022-08-14 11:29:57 · 399 阅读 · 0 评论 -
javascript算法之从会用到理解 - 二分法
二分法相信大家都不陌生,这里想各位介绍一些小思路,仅供大家参考原创 2022-08-10 17:58:24 · 228 阅读 · 0 评论 -
sql跨表查询的三种方案
众所周知,mysql是不支持跨库连接的,但是老话说得好,只要思想不滑坡,思想总比困难多!当我们需要切割数据或者分析大数据时,可能就需要跨进行查询,这里就有本人总结的三种方案,各位按需取用即可!......原创 2022-08-09 23:19:58 · 4002 阅读 · 0 评论 -
javascript算法之从会用到理解 - 数组反转
数组反转,也被实际应用与散手绢,数组反转的思路有很多,但是,从这个分析中,想告诉大家,分析算法,一定要看清楚问题,不能只顾眼前,从而忽略其他的可能原创 2022-08-07 19:19:29 · 383 阅读 · 0 评论 -
如何切换npm源 - nrm
在使用公司打包好的npm包是,势必与npm官方源冲突,但是nrm可以友好的帮助我们开素切换npm源原创 2022-08-06 11:40:11 · 5489 阅读 · 0 评论 -
如何优雅的在本地调试npm包
当你学会如何编写和发布npm包之后,就面临我们的下一个问题,npm包迭代。在npm包迭代的过程中,我们肯定是需要调试npm包的,调试npm包有很多种方法,比如,将安装包直接放到node项目的node_modules文件夹下进行调试、通过软连接的方法进行本地调试。这里我就介绍我喜欢的那一种,通过软连接进行调试。当然,有些无畏者说,他的代码没有bug,不需要调试。那当我没说,请出门左拐!...原创 2022-08-02 09:09:35 · 2985 阅读 · 0 评论 -
从esLint+Prettier开始格式化代码
代码格式化和代码规范对研发者来说,都并不陌生。随手的保存,随手的格式化代码,总让我们的代码更加漂亮。但是我们在一次次的格式化中,偶尔也有一些问题。在开发同一个项目时,由于不同的开发者使用的编辑器不同,格式化方案也有所不同,还有一些开发者带有之前开发习惯的格式化配置,那么在代码提交中,就会出现格式变动。完成一个功能后,开心的commit,却发现多了很多不是自己的修改,甚至引发冲突。当你使用–no-verify顺利提交之后,发现引号在单双之间横跳 、缩进在两个空格和tab不断反复。。。所以,为了让团队内有一原创 2022-07-08 17:25:29 · 1222 阅读 · 0 评论 -
Joi数据验证
在编写api的时候通常都需要对参数进行校验,包括:Joi 是 hapijs 自带的数据校验模块,它已经高度封装常用的校验功能。2.基础使用使用joi进行校验,首先要定义它的校验规则,也叫schema。上面就定义了一个校验字符串类型的规则,这个schema会有一个 validate方法,传入需要校验的值:validate方法会返回一个对象,如果验证通过,就只会返回value属性,如果验证错误,就还有一个error对象,其中error对象的message描述了失败原因:因此,在此次介绍中,我将验证结果进原创 2022-07-06 13:14:13 · 3762 阅读 · 1 评论 -
代码重构不是笑谈
此文,基于《重构-改善既有代码的设计》第2版,的学习之后的一些想法.重构是在不改变软件可视范围内的对代码的调整,主要提高代码可读性,降低修改成本.在这本书中,任何一个重构方法的介绍,作者总在强调一件事情,重构代码是,请注意测试,稳定是重构的基本原则.在代码逻辑不断增加的时候,也许有人想起重构代码,但是,每一次有这个念头,总会被无数个理由击败.运行的好好的,不要动他了,又不是不能用;重构会浪费很多的时间;排期紧;又不是我写的;代码太长了,太难理解,万一搞坏了怎么办;所以,一个很重要的问题?什么时候重构呢?原创 2022-07-05 13:33:34 · 605 阅读 · 0 评论 -
《重构2》第九章-重组数据
代码运行中,一个值用于不同字段,或者一个字段对象不同的值,将会造成数据的紊乱,即使有注释,也无济于事!!!原创 2022-06-22 09:22:37 · 343 阅读 · 0 评论 -
《重构2》第八章-搬移
搬移是重构的一个基本准则原创 2022-06-22 09:21:34 · 350 阅读 · 0 评论 -
《重构2》第七章-封装
封装的意义,在于提炼相同的代码逻辑,借以复用!同时,类,也是用来隐藏部分信息的好方法!原创 2022-06-22 09:20:20 · 243 阅读 · 0 评论 -
《重构2》第六章-重构基础
重构基础原创 2022-06-20 09:35:12 · 254 阅读 · 0 评论 -
循环中使用async/await
循环中使用async/await原创 2022-06-19 15:38:32 · 3926 阅读 · 0 评论 -
《重构2》第十一章-重构API
api是程序前端和后端联动的节点,无序或看似有效的api,会给后来的开发者以及协作人员带来不必要的麻烦!相信有一部分人是认为POST方法万岁,输出的api全是POST请求,且格式统一,在某种意义上,会被认为,只有一种请求,对接起来更为方便。其实并不然,api后续逻辑的增删改查数据,统一放到post请求中,时间一长,你讲不理解每个api淂作用,有人说,我进行语义化api不就可以了,迄今为止,我也依然认为,在开发过程中,给函数起名是个大难题,且占用了我大部分时间!同时,全是post的请求,但凡api中注释写原创 2022-05-28 17:38:32 · 329 阅读 · 0 评论 -
new Set与...new Set()区别
1. Set方法使用方法描述add添加某个值,返回Set对象本身。clear删除所有的键/值对,没有返回值。delete删除某个键,返回true。如果删除失败,返回false。forEach对每个元素执行指定操作。has返回一个布尔值,表示某个键是否在当前 Set 对象之中。2. new Set()new Set()本质,将数组/字符串转化为对象,且去重// 数组转对象且去重let arr = [1,2,3,3,1,4]; l原创 2022-05-28 16:49:44 · 1030 阅读 · 0 评论 -
《重构2》第十章-简化条件逻辑
代码沉重不堪重负,难以修改的一大问题就在于,条件逻辑过于复杂,我们需要判断很多逻辑,同时在不同的地方又有相似之处,在没有优化之前,可能通过简单的拷贝,来迅速完成功能,然而,同时带来了风险,拷贝来的代码,很可能带有不必要的条件逻辑,因此,增加了重构的工作量;1.分解条件表达式比较沉重的业务功能,可能拥有较为复杂的条件逻辑,在大型功能中,冗长的函数让人头大,且毫无修改心思,谁知道会不会触发罗七八糟的逻辑,而且,为了一个小修改,就要通读冗杂的逻辑,而你其实,只需要其中一个小改动这是提取函数的一个具体分之,将原创 2022-05-23 00:16:58 · 261 阅读 · 0 评论 -
使用es6的方法,让代码更整洁
不接受杠精,这里暂时将es5之后的统称为es6,感谢理解1.对象取值恕我直言,2022了,还有人不用解构赋值的吗? let obj = { a:1, b:2, c:3, d:4, e:5, 原创 2022-05-18 21:51:37 · 151 阅读 · 0 评论 -
ES2022 的新功能
1 .at()索引值对应值的方法这个函数让我们读取给定索引处的元素。它可以接受负索引来从给定数据类型的末尾读取元素。例如支持此功能的数据类型有以下:String Array 所有类型化数组类:Uint8Array 等2 RegExp 匹配索引除了g、i,正则表达式新增d标志会生成匹配对象,记录每个组捕获的开始和结束。有不同的方法来匹配索引编号组的匹配索引命名组的匹配索引它们的索引存储在matchObj.indices.groups3 Object转载 2022-05-18 11:22:56 · 386 阅读 · 0 评论 -
字符串特殊字段转义
开发过程中难免有需要进行模糊匹配搜索的地方,但是如果你在使用正则表达式进行模糊匹配,那么,你就需要对特殊字符进行转义,否则,你可以试试模糊匹配以下字符串let str = "/*";下面,我们来进行特殊字符的转义//正则字符串转义function escapeRegExp(str) { return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");}//demofunction regex原创 2021-11-01 15:24:53 · 1440 阅读 · 0 评论 -
TypeError: Assignment to constant variable.
这个错误并不高级原创 2021-06-05 09:04:18 · 4286 阅读 · 0 评论 -
MEAN框架的纯后端代码
公司使用MEAN框架进行开发,随着项目的业务的增加,前后端在同一份项目中就显得不容易维护,最终,我们觉得,还是将前后端分离;分离后的项目,使用的只要技术栈如下:node+express+mongo+redismongo和redis各位可根据需要,自行修改;项目地址:https://github.com/long861/Mean_node_demo.git共勉语录:迈出第一步,我们就已经走向了成功...原创 2021-05-27 11:47:21 · 159 阅读 · 0 评论 -
数组中嵌套对象,根据对象的某个字对对象进行去重
// 数组中嵌套对象,根据对象的某个字段进行对象去重function uniqObj(data, name) { var dataArr = []; var dataObj = {}; for (var i = 0; i < data.length; i++) { var item = data[i].name; if (!dataObj[item]) { ...原创 2018-10-29 16:11:04 · 1314 阅读 · 0 评论