自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 nodejs数据持久化--MySQL(2)Sequelize对象关系映射

引入依赖const Sequelize = require('sequelize')建立数据库连接// 建立连接const sequelize = new Sequelize('数据库名称', '用户名', '密码', { host: 'localhost', /* 数据库类型 'mysql' | 'mariadb' | 'postgres' | 'mssql' */ di...

2019-12-27 18:18:37 872

原创 nodejs数据持久化--MySQL(1)SQL原生操作

安装数据库依赖 mysql2地址npm install --save mysql2配置数据库连接const mysql = require('mysql2/promise')// 数据库连接配置const cfg = { host: 'localhost', user: 'root', password: 'ZSY4563695158', database: 'node...

2019-12-27 14:57:09 381

原创 nodejs数据持久化--文件系统

// 实现一个文件系统读写数据库const fs = require('fs')const path = require('path')// 文件名const jsonFile = path.resolve(__dirname, './db.json')// 读数据function get(key) { fs.readFile(jsonFile, (err, data) =&g...

2019-12-26 17:42:05 884 1

原创 nodejs实现文件下载

文件目录结构index.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta ht...

2019-12-26 15:18:14 1352

原创 js实现短信验证码倒计时

// 倒计时function countDown() { let show = true let count = 0 let timer = null if (!show) return const TIME_COUNT = 15 if (!timer) { count = TIME_COUNT show = false timer = setInterval(() =&...

2019-12-19 17:35:03 297

转载 cookie字段属性详解

name字段为一个cookie的名称。value字段为一个cookie的值。domain字段为可以访问此cookie的域名。非顶级域名,如二级域名或者三级域名,设置的cookie的domain只能为顶级域名或者二级域名或者三级域名本身,不能设置其他二级域名的cookie,否则cookie无法生成。顶级域名只能设置domain为顶级域名,不能设置为二级域名或者三级域名,否则coo...

2019-12-19 16:39:36 2041

原创 HTTP 请求方法

方法描述支持的http版本GET请求指定的页面信息,并返回实体主体。1.0 / 1.1POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。 POST 请求可能会导致新的资源的建立和/或已有资源的修改。1.0 / 1.1HEAD类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头。1.0 / 1.1...

2019-12-18 10:28:24 471

原创 GET和POST的区别

get参数通过url传递,浏览器直接发出的get请求只能由一个url触发。post放在request body中。get请求在url中传递的参数是有长度限制的,而post没有。get比post更不安全,因为参数直接暴露在url中,所以不能用来传递敏感信息。get请求只能进行url编码,而post支持多种编码方式get请求会浏览器主动cache,而post支持多种编码方式...

2019-12-18 10:16:04 52

转载 http状态码

100 Continue 继续。客户端应继续其请求101 Switching Protocols 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议200 OK 请求成功。一般用于GET与POST请求201 Created 已创建。成功请求并创建了新的资源202 Acc...

2019-12-17 17:13:16 66

原创 cookie与session的区别

cookie数据存放在客户的浏览器上,session数据放在服务器上。cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用COOKIE。单个cookie保存的数据不能超过4K,很多浏览器都限制一个...

2019-12-17 16:35:46 55

原创 Cookie、sessionStorage、localStorage之间的区别

相同点:都是将数据保存在浏览器端,且都是同源的。不同点:Cookie:cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下,存储的大小很小只有4K左右。 (key...

2019-12-17 16:26:43 111

原创 移动端rem响应式解决方案

设置meta标签<meta id="viewport" name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1; user-scalable=no;">上述meta标签的每一个属性的详细介绍如下:属性名取值描述width正整数定义布局视口的宽度,单位...

2019-12-17 15:58:26 182

原创 买卖股票的最佳时机

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意: 你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润...

2019-12-16 15:45:04 89

原创 猜数字大小

我们正在玩一个猜数字游戏。 游戏规则如下:我从 1 到 n 选择一个数字。 你需要猜我选择了哪个数字。每次你猜错了,我会告诉你这个数字是大了还是小了。你调用一个预先定义好的接口 guess(int num),它会返回 3 个可能的结果(-1,1 或 0):-1 : 我的数字比较小1 : 我的数字比较大0 : 恭喜!你猜对了!*注意:这里的「我的数字」 指的你要猜的数字,不是你输入...

2019-12-16 14:36:32 240

原创 搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0...

2019-12-13 17:35:51 49

原创 重复叠加字符串匹配

给定两个字符串 A 和 B, 寻找重复叠加字符串A的最小次数,使得字符串B成为叠加后的字符串A的子串,如果不存在则返回 -1。举个例子,A = “abcd”,B = “cdabcdab”。答案为 3, 因为 A 重复叠加三遍后为 “abcdabcdabcd”,此时 B 是其子串;A 重复叠加两遍后为"abcdabcd",B 并不是其子串。注意:A 与 B 字符串的长度在1和10000区间...

2019-12-13 11:20:00 236

原创 重复的子字符串

给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例 1:输入: “abab”输出: True解释: 可由子字符串 “ab” 重复两次构成。示例 2:输入: “aba”输出: False示例 3:输入: “abcabcabcabc”输出: True解释: 可由子字符串 “abc” 重复四次构成...

2019-12-12 17:42:37 174

原创 实现indexOf()方法

实现 indexOf() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1;当 needle 是空字符串时返回 0 。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack...

2019-12-12 11:26:35 1223 1

原创 数组移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。方法:var moveZeroes = function (nums) { /** * i = 0 nums[0] = 0 ...

2019-12-12 10:36:51 182

原创 vue + element-ui el-form在el-table中的表单验证

在开发过程中偶尔遇到el-table嵌套el-form,而且还需要表单验证的需求,如下图:解决方案:动态定义el-form-item的prop属性,保证唯一性,并设置独立的rules属性。<el-form-item :prop="'applyDataList.' + scope.$index + '.value3'" :rules="applyRules.value3">h...

2019-12-11 15:57:01 3767

原创 删除排序数组中的重复项

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nu...

2019-12-10 17:51:21 91 1

原创 有效的括号

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:...

2019-12-10 16:47:26 60

原创 最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。方法: 水平扫描初始默认最长公共前缀为字符串数组...

2019-12-10 15:23:59 63

原创 罗马数字转整数

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符            数值I                   1V              &...

2019-12-10 14:37:22 102

原创 验证回文字符串

给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: “aba”输出: True示例 2:输入: “abca”输出: True解释: 你可以删除c字符。注意:字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。方法:双指针法通过split()方法将字符串转换成字符串数组arr,设置两个指针left,right;lef...

2019-12-09 18:38:09 110

原创 回文数

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。进阶...

2019-12-09 15:38:38 327

原创 css设置文字超出显示省略号

单行超出省略.div { white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}多行超出省略.div{ -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; text-overflow: -o-ellipsis-lastline;...

2019-12-09 11:22:50 74

原创 vue3.0自定义字体图标使用

以往方法:在Iconfont官网中搜索所需图标添加入库添加至项目下载素材至本地页面中引入字体文件使用方法:<i class="iconfont user-icon"></i>缺点:项目想要添加新的图标时,需要重复上述操作并重新下载覆盖文件手动分割线解决方案:采用svg-sprite-loader自动加载打包,方便维护// 项目默认配置文件|...

2019-12-09 11:17:47 828

原创 整数反转

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。方法var rev...

2019-12-06 18:21:22 75

原创 两数之和

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]方法一:数组遍历...

2019-12-06 10:41:39 116

原创 理解js中的浅拷贝和深拷贝

JavaScript的变量类型Number Boolean String Null undefined Object Function基本类型Number Boolean String undefined null变量是直接按值存放的,存放在栈内存中的简单数据段,可以直接访问。引用类型Object Function存放在堆内存中的对象,变量保存...

2019-12-05 15:52:10 97

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除