落雁沙吹牛逼大王

的文章
  • 分布式事务
    1.事务的概念 事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。 2.事务的特性 事务是必须满足4个条件(ACID):原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。 原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。 一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这...
    •  1
    •  1
    •  2020-09-28
  • typeorm如何设置字段驼峰转下划线
    在用ts的时候,我们一般会遵循驼峰写法,但是,数据库字段的设计我们一般是用的下划线。那么,在typeorm中,我们需要怎么做,才能让entity中的属性,在映射到数据库的时候,默认转下划线。 添加依赖: yarn add typeorm-naming-strategies 修改database的配置文件 const SnakeNamingStrategy = require('typeorm-naming-strategies').SnakeNamingStrategy; export default ()=>({   database:{     type: 'mysql',     ho...
    •  1
    •  0
    •  2020-08-17
  • 用nestjs初始化一个restful应用
    在是用nodejs作为服务端语言的时候,之前我们会选择express或者koa作为服务框架。虽然es7的语法已经让javascript很类似java了,但是如果是习惯用Java的人来说,写起来是不太顺手,毕竟js的写法很多人还是适应不了的。最近看到有个新的框架 nestjs,于是看了下文档,感觉风格很像spring 于是打算写个demo试试。 1.初始化框架 yarn global add @nestjs/cli nest new project-name 脚手架会生成一个基本的nestjs项目。里面有基本的hello word的应用。但是,这些还不够,一个完整的应用,我们需要有数据库,需要...
    •  2
    •  1
    •  2020-08-17
  • 配置docker私仓的地址和账户密码
    在做自动化构建的时候,我们会把项目打包成镜像然后再推送到docker私仓,k8s的各个节点再去拉取这个镜像。私仓一般都是有账号密码的,那么我们需要去设置一下这个。 以阿里云为例,我们找一台机器,在上面执行 docker login 操作,这样就会自动在 root/.docker下生成一个 config.json文件。查看文件内容,如下: {     "auths": {         "registry-vpc.cn-shanghai.aliyuncs.com": {             "auth": "xxxxxxxxx"         }     },     "HttpHead...
    •  0
    •  0
    •  2020-08-11
  • centos8+kubeadm1.18.3+calico环境安装
    由于一些原因,需要重新部署一套k8s的测试环境。但是,又不想用二进制按照,之前使用二进制安装,各种脚本写的要吐。经过一些咨询,决定使用Kubeadm进行部署。 这里,我们就简单的使用1台master,1台Node进行测试。 环境配置 centos8 kubeadm 1.18.3 calico1.14.2 1.更新系统 yum upgrade -y 2.关闭防火墙 systemctl stop firewalld systemctl disable firewalld 3.关闭selinux setenforce 0 sed -i 's/^SELINUX=enforcing$/SELINU...
    •  0
    •  0
    •  2020-08-02
  • sku组合生成的函数
    在做电商项目的管理后台的时候(当然,我说的是比较正规的,不是那种只是一个商品列表的那种电商),需要对用户选择的sku属性进行组合,得到商品的所有规格。那么这个功能应该怎么去做呢?我们可以把规格属性理解成多个数组,我们需要得到的就是这几个数组所有的组合方案,这个有点类似回溯算法,但好像又不是。 比如,我们要对["a","b","c"],["d","e","f"],["g","h"] 这三组属性进行组合。按照我们的思路就是 a->d->g,a->d->h,a->e->g,a->e->h 总结来说,就是遍历->再递归。 函数如下: const _ = require("lodash"); let r...
    •  0
    •  0
    •  2020-06-25
  • mysql下做不匹配数据的统计sql写法
    在mysql数据库中,我们习惯的使用left join 去查询两个表的数据。比如说,有这么一个表,我要去查询所有有java这个标签的文章。 当然,这个是 一个很简单表结构,我们要查出有java标签的,这个sql很简单。 select * from tags where tag='java' 结果很明显,也很简单 这是一个简单的需求,我们很容易就得到了结果,但是,我们如果需要统计标签里没有java的文章呢?首先,我们大概会想到用!去处理。 select * from tags where tag!='java' 通过结果,我们可以发现 ,并不如预期,因为ariticle_id 为5的文章是有...
    •  1
    •  0
    •  2020-06-25
  • postgresql批量修改表的owner
    postgresql中,对表的权限控制比较严格,很多事情只有owner才有权限去做。所以我们尽量用onwer账户去操作。 但是有的时候我们需求去批量修改owner,比如导入的表结构。但是官方并没有提供比较好的命令。 我们可以用拼接sql的方式去完成这个命令。 1.查看有哪些表 select * from information_schema.tables where table_schema='public'; 2.拼接sql select 'ALTER TABLE ' || table_name || ' OWNER TO yourowner;' from information_sche...
    •  0
    •  0
    •  2020-06-21
  • 基于selenium的自动化UI测试环境搭建
    最近在考虑怎么做一个项目的自动化测试,咨询下来,用selenium的比较多,于是也想写个demo测试下。 首先,我们需要添加依赖 <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.141.59</version> </dependency> 这里我们选择用chrome作为测试浏览器,需要去下载chormedriver,下载地址:https://sites.google.com/a/chromium.org/c...
    •  2
    •  4
    •  2020-06-13
  • 使用next.js 创建web端应用
    1.项目背景 在当前项目中,我们经常会把项目分为,web端,移动端,管理后台,等等。为了实现接口的共用 ,项目的设计是把web端,移动端都使用同样的的接口去获取数据。由于业务性质,需要考虑到搜索引擎的抓取,所以使用了next.js来实现ssr。 2.准备工作 2.1 配置.npmrc文件,设置淘宝的源 registry=[https://registry.npm.taobao.org/](https://registry.npm.taobao.org/) disturl=[https://registry.npm.taobao.org/node](https://registry.npm.t...
    •  2
    •  0
    •  2020-04-30