08 2020 档案
摘要:一、for update的使用场景 如果遇到存在高并发并且对于数据的准确性很有要求的场景,是需要了解和使用for update的。 比如涉及到金钱、库存等。一般这些操作都是很长一串并且是开启事务的。如果库存刚开始读的时候是1,而立马另一个进程进行了update将库存更新为0了,而事务还没有结束,会将
阅读全文
摘要:在程序开发中,我们常遇到用树型结构来表示某些数据间的关系,如企业的组织架构、商品的分类、操作栏目等,目前的关系型数据库都是以二维表的形式记录存储数据,而树型结构的数据如需存入二维表就必须进行Schema设计。最近对此方面比较感兴趣,专门做下梳理,如下为常见的树型结构的数据: 一、邻接表 其中最简单的
阅读全文
摘要:一、获取formdata上传的文件 问题:使用 koa-bodyparser 可以解析post提交的问题,但是发现获取不到formdata上传的文件。 后经查资料,改用 koa-body 解决: const koaBody = require('koa-body'); app.use(koaBody
阅读全文
摘要:1、Docker镜像拉取错误码: C:\Users\Administrator>docker pull mysql:5.7 5.7: Pulling from library/mysql no matching manifest for unknown in the manifest list en
阅读全文
摘要:在工作中编写 dockerfile 的时候接触到chmod +x 这个命令,如下图:RUN chmod +x ./startPM2.sh 这是什么意思呢,因为对linux不大熟,没看懂,没关系,那我们就学习。 经过上网查询,引申太多,其实感觉总结一点作用就是:chmod +x 的意思就是给执行权限
阅读全文
摘要:一、Dockerfile文件指令分析 # Base images 基础镜像 FROM centos #MAINTAINER 维护者信息 MAINTAINER lorenwe #ENV 设置环境变量 ENV PATH /usr/local/nginx/sbin:$PATH #ADD 文件放在当前目录下
阅读全文
摘要:一、docker架构 Docker 包括三个基本概念: 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。 容器(Container):镜像(I
阅读全文
摘要:node项目部署之后,发现访问不了,pm2 list也是正常的,vue项目都可以正常访问,就是请求后台nodejs的时候就报404。 原以为是pm2的问题,先停了pm2,用node app.js的方式运行后端代码,项目能正常启动但是依然无法访问 原因:后端运行端口未放行 1、检查ecs的安全组规则,
阅读全文
摘要:一、Linux 如何开放端口和关闭端口 1、查看哪些端口被打开:netstat -anp 2、查看端口是否开放:netstat -anlp | grep 3006 (如果有内容,说明被放行了,如果没内容,说明没放行) 3、放行7002端口:iptables -I INPUT -p tcp --dpo
阅读全文
摘要:承接上篇安装docker时候,因为是win10家庭版,踩过一些坑,记录下: 一、前提条件 需要Windows功能:Hyper-V。 打开控制面板 - 程序和功能 - 启用或关闭Windows功能,勾选Hyper-V,然后点击确定即可,如图: 点击确定后,启用完毕会提示重启系统,我们可以稍后再重启。
阅读全文
摘要:Sequelize 允许你为模型的属性定义自定义获取器和设置器. Sequelize 还允许你指定所谓的 虚拟属性(也就是实体类的属性,不是数据库里的字段),它们是 Sequelize 模型上的属性,这些属性在基础 SQL 表中实际上并不存在,而是由 Sequelize 自动填充.它们对于简化代码非
阅读全文
摘要:一、简单 INSERT 查询 首先,一个简单的例子: // 创建一个新用户 const jane = await User.create({ firstName: "Jane", lastName: "Doe" }); console.log("Jane's auto-generated ID:",
阅读全文
摘要:Sequelize 支持标准关联关系: 一对一, 一对多 和 多对多. 为此,Sequelize 提供了 四种 关联类型,并将它们组合起来以创建关联: HasOne 关联类型 BelongsTo 关联类型 HasMany 关联类型 BelongsToMany 关联类型 该指南将讲解如何定义这四种类型
阅读全文
摘要:偶尔听人说用nginx实现文件上传下载,之前看nginx实践大致看到过,没有细究。所以今天就想研究下nginx实现文件的上传下载,直接开搞,本地服务启起。这里记录下配置及踩坑记录。 一、配置 http { ... server: { # 配置下载 location /download { root
阅读全文
摘要:一、磁盘管理常用命令: 1、cd命令:用于切换当前工作目录至 dirName(目录参数) cd directory #切换到directory目录下,可以使用绝对路径,也可以使用相对路径 cd ~ #切换到用户主目录 cd .. #切换到父目录,即上级目录 cd - #切换到此目录之前所在目录 2、
阅读全文
摘要:nodejs想直接请求第三方接口,比如微信登录的,那么appsecret这些肯定放在后端去请求比较安全。以前常用的是request模块,下面简介介绍一下基本用法。但是request目前已不在维护,下面也会介绍一些靠谱的替代方案。 一、request以及request-promise简单介绍 requ
阅读全文
摘要:一、为什么要使用Token? 在前后端分离开发时为什么需要用户认证呢?原因是由于HTTP协定是不储存状态的(stateless),这意味着当我们透过帐号密码验证一个使用者时,当下一个request请求时它就把刚刚的资料忘了。于是我们的程序就不知道谁是谁,就要再验证一次。所以为了保证系统安全,我们就需
阅读全文
摘要:一般来说单点认证都需要两端来完成,在认证中心端的我们称之为SSO,在网站端的模块我们称之为PSO。 两个模块之间采用二次重定向技术来实现同步两端票据的方式来实现单点登陆。 为什么需要单点登录?产品刚上线时,一般由于用户量少,所有的功能都放在一起,一般也不需要具体的单点登录。随着用户量和业务发展的需要
阅读全文
摘要:有这么个场景,公司下有多个不同域名的站点,我们期望用户在任意一个站点下登录后,在打开另外几个站点时,也是已经登录的状态,这么一过程就是单点登录。 因为多个站点都是用的同一套用户体系,所以单点登录可以免去用户重复登录,让用户在站点切换的时候更加流畅,甚至是无感知。 单点登录所要实现的就是,某一站点登录
阅读全文
摘要:Koa 是一个由 Express 原班人马打造的新的 web 框架,Koa 本身并没有捆绑任何中间件,只提供了应用(Application)、上下文(Context)、请求(Request)、响应(Response)四个模块。原本 Express 中的路由(Router)模块已经被移除,改为通过中间
阅读全文
摘要:本博客描述 Sequelize 中的各种关联类型。当调用诸如 User.hasOne(Project) 之类的方法时,我们说 User 模型(函数被调用的模型)是 source 。 Project 模型(作为参数传递的模型)是 target 。 一、一对一关联 一对一关联是通过单个外键连接的两个模型
阅读全文
摘要:1、时间格式化 类型需要采用:Sequelize.DATE 初始化Sequelize的时候传入dialectOptions参数,及timezone dialectOptions: { charset: 'utf8mb4', dateStrings: true, typeCast: true }, t
阅读全文
摘要:一、问题: 大家都知道在HTML中有三种使用CSS的方式,分别是:内联样式、内部样式、外部样式。外部样式,在head部分使用link标签引入外部写入css样式表的文件,示例如下:<link href="index.css" rel="stylesheet">,同时,在项目根目录下创建index.cs
阅读全文
摘要:mysql更新语句很简单,更新一条数据的某个字段,一般这样写:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value'; 如果更新同一字段的不同值,mysql也很简单,利用 in 查询,修改下where即可:UPDA
阅读全文
摘要:一、查询 Finder 方法是生成 SELECT 查询的方法. 默认情况下,所有 finder 方法的结果都是模型类的实例(与普通的 JavaScript 对象相反). 这意味着在数据库返回结果之后,Sequelize 会自动将所有内容包装在适当的实例对象中. 在少数情况下,当结果太多时,这种包装可
阅读全文
摘要:队列这种数据结构,前端需要了解的队列结构主要有:双端队列、滑动窗口,它们都是算法中是比较常用的数据结构。 一、数据结构:队列 队列和栈类似,不同的是队列是先进先出 (FIFO) 原则的有序集合,它的结构类似如下: 常见队列的操作有:enqueue(e) 进队、 dequeue() 出队、 isEmp
阅读全文
摘要:在日常的项目开发中,我们会用到各种第三方库来提高效率,但随之带来的问题就是打包后的vendor.js体积过大,导致加载时空白页时间过长,给用户的体验太差。为此我们需要减少vendor.js的体积,从本质上来解决这种问题。 webpack的外部扩展(externals)可以有效的解决。 一、作用? 使
阅读全文
摘要:直接使用Sequelize虽然可以,但是存在一些问题。团队开发时,有人喜欢自己加timestamp,有人又喜欢自增主键,并且自定义表名。一个大型Web App通常都有几十个映射表,一个映射表就是一个Model。如果按照各自喜好,那业务代码就不好写。Model不统一,很多代码也无法复用。所以我们需要一
阅读全文
摘要:一、调试 项目根目录下新建.vscode文件夹,同时该文件夹下新建launch.json文件 launch.json { // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwli
阅读全文
摘要:1、普遍方法: 使用 COUNT(*) ,例如: select count(*) as total from foods_info LIMIT 0,10; select count(*) as total from foods_info; 缺点: 记录集还需要单独的查询来获取,相当于两次查询 2、推
阅读全文
摘要:由于常常使用简单的方式来执行原始/已经准备好的SQL查询,因此可以使用 sequelize.query 方法. 默认情况下,函数将返回两个参数 - 一个结果数组,以及一个包含元数据(例如受影响的行数等)的对象. 请注意,由于这是一个原始查询,所以元数据都是具体的方言. 某些方言返回元数据 "with
阅读全文
摘要:一、什么是 ORM? 首先看下维基百科上的定义,ORM 是「对象关系映射」的翻译,英语全称为Object Relational Mapping,它是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的「虚拟对象数据库」。 随着面
阅读全文
摘要:官网地址:https://www.mysql.com/ 安装建议:尽量不要用.exe进行安装,用压缩包安装,对日后的卸载更为方便 下载地址:https://dev.mysql.com/downloads/mysql/ 1、下载得到zip压缩包 2、解压到要安装的目录 我这里是:D:\Program
阅读全文