自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (1)
  • 收藏
  • 关注

原创 vueegg sqlize双数据库连接

vueegg sqlize双数据库连接需要注意sqlize版本要在5.2.2版本以上才行 //数据库配置 //生产环境 if (process.env.RUN_ENV === 'EWS') { // 聚石塔 张北 exports.sequelize = { datasources: [ { delegate: 'model', // 加载所有的模型到 app.model and ctx.model baseDir:

2021-01-29 11:30:08 297

原创 node图片转base64

var data = 'https://isv.alibabausercontent.com/00000000/imgextra/i1/2634283647/O1CN01wtk46L1coN6mnZbbK_!!2634283647-2-isvtu-00000000.png' //Buffer.concat将chunks数组中的缓冲数据拼接起来,返回一个新的Buffer对象赋值给datavar base64Img =Buffer.from(data).toString('base64');  //将Buff

2021-01-28 17:35:06 804

原创 初探gojs

话不多说直接上代码HTMLjs外链地址//引入的内容js如有需求请私聊我//gojs<!DOCTYPE html><html><head> <meta charset="utf-8" /> <meta content="a1z51.23600852" name="spm-id" /> <title> demo </title> <script src="../../lib/

2021-01-19 17:35:47 605

原创 mode+mysql接口编写

环境搭建确保是否已经安装nodenode -v确保是否已经安装expressexpress -version如果没有安装express 执行以下命令npm install express -gnpm install -g express-generator在4.x版本以后,把express-generator 单独分离了出来需要单独安装项目搭建在文件夹下输入以下命令apiLearn 可以随意起 是项目文件名express apiLearn在当前文件夹下安装

2021-01-14 16:46:28 188 1

原创 深究js排序sort方法

JS中sort()方法原理及使用sort() 方法用于对数组的元素进行排序,并返回数组。默认排序顺序是根据字符串UniCode码。因为排序是按照字符串UniCode码的顺序进行排序的,所以首先应该把数组元素都转化成字符串(如有必要),以便进行比较。例1 // 按照字母顺序进行排序 var arr = ['tom','ani','love','sai','fei']; arr.sort(); console.log(arr.sort);例2 var ar

2021-01-11 11:41:08 184 1

原创 mongodb基础

数据库概述及环境搭建在一个数据软件中可以包含多个数据仓库,在每个数据仓库中可以包含多个数据集合,每个数据集合可以包含多条文档(具体的数据)datebase数据库,mongodb数据软件中可以建立多个数据库collection集合,一组数据的集合,可以理解为javascript数组document文档,可以理解为javascript中的对象field字段文档中属性的名称,可以理解为javascript中的对象属性node连接mongodb首先确保是否已经启动mongdb

2020-12-21 18:24:49 157

原创 mongodb安装

1.下载下载第一步 除此之外还需要下载一个工具,图形操作界面 需要注意自己根据自己的电脑选择系统2.安装next点击customnext把这个勾取消了不然会给你下载可视化工具,之前我们已经分开下载了点击install等待完成点击finshi安装可视化直接点击下载好的软件自动会安装安装完成后桌面会出现此图标...

2020-12-21 16:04:51 141

原创 gitee码云基础教学

基础命令git init 新建一个 目录将其初始化一个git代码库git clone 下载一个项目,和它整个的代码历史git pull 取回远程仓库的变化,并与本地分支合并git add . 添加当前目录所有文件到暂存区git commit 提交暂存区到本地仓库区git push 推送代码到远程库git diff 显示暂存区和工作区的差异git checkout 切换到指定分支并更新到工作区git fetch 下载远程仓库所有变动git merge 合并指定分支到当前分支...

2020-11-24 14:19:09 184

原创 TypeScript枚举类型

Enum枚举类型TypeScript 中枚举(enum)类型的使用,你如果在程序中能灵活的使用枚举(enum),会让程序有更好的可读性。这里我拿每次去“大宝剑”点餐作个比喻。比如我现在去"大宝剑"时,通过掷色子随机选择一项服务,进行程序化模拟。这里我先用 JavaScript 的写法来编写。初级写法function getServer(status:number){ if(status === 0){ return "massage"; }else if(status

2020-10-21 14:53:41 423

原创 TypeScript联合类型展示

TypeScript联合类型展示所谓联合类型,可以认为一个变量可能有两种或两种以上的类型。用代码举个例子,声明两个接口Waiter(服务员)接口和Teacher(技师)接口,然后在写一个judgeWho(判断是谁)的方法,里边传入一个animal(任意值),这时候可以能是Waiter,也可能是Teacher。所以我们使用了联合类型,关键符号是|(竖线)。interface Waiter { anjiao: boolean; say: () => {};}interface Teach

2020-10-21 11:31:24 200

原创 前后端三层双层(多层)树形结构处理

前后端树形结构处理----设计理念相信有许多人曾被树形结构处理从而困扰过下面我就为大家分享一下,在工作中!常见的树形结构该怎么处理!场景首先肯定有三个数据 这里我就分为 大主题(第一层数据),小主题(第二层数据),商品(第三层数据) 这里就列举为三层数据吧!其实你搞懂了三层数据处理后,在多也是一样的!首先你要知道三层数据肯定是有所关联的那到底是咋样关联的呢?其实懂点后端的伙伴!肯定知道是通过字段id关联的!(1)假设大主题 总共有四条如下(后端同理就当下面下面数据为查除数据)let bi

2020-10-20 18:10:58 2754

原创 TypeScript配置文件-compilerOptions配置

rootDir和outDir现在你的js文件直接编译到了根目录下,和ts文件混在了一起。我们当然是不喜欢这种方法的,工作中我们希望打包的js都生成在特定的一个文件夹里,比如build。这时候你就可以通过配置outDir来配置,当然你也可以通过rootDir来指定ts文件的位置,比如我们把所有的 ts 文件都放到 src 下。那配置文件就应该这样写。{ "outDir": "./build" , "rootDir": "./src" ,}这时候你再在Terminal中输入tsc,就

2020-10-20 15:25:57 4386

原创 TypeScript配置文件tsconfig.json

生成tsconfig.json这个文件是通过tsc --init命令生成的,在桌面上新建一个文件夹TsDemo,然后打开VSCode,把文件托到编辑器中,然后打开终端Terminal,输入tsc --init。输入完成后,就会出现tsconfig.json文件,你可以打开简单的看一下,不过此时你可能看不懂。其实它就是用来配置如何对ts文件进行编译的,我们都叫它 typescript 的编译配置文件。如果此时你的tsc执行不了,很有可能是你没有全局安装 TypeScript,可以全局安装一下。让

2020-10-19 17:04:38 1843

原创 类的只读属性readonlay和抽象类

类的只读属性readonlay写下面一个类,并进行实例化和赋值操作,代码如下:class Person { constructor(public name:string){ }}const person = new Person('Riven');console.log(person.name);写完后我们可以在终端(Terminal)中看一下结果,结果就应该是Riven。比如我现在有一个需求,就是在实例化对象时赋予的名字,以后不能再更改了,也就是我们常说的只读属性。我们

2020-10-19 15:33:15 567 2

原创 TypeScript类的概念和使用

类的基本使用定义一个最简单的Lady类,这里要使用关键字class,类里边有姓名属性和一个得到姓名的方法,代码如下:class Lady { content = "Hi,帅哥"; sayHello() { return this.content; }}const goddess = new Lady();console.log(goddess.sayHello());写完代码后,可以使用ts-node xxx.ts来查看一下结果。这是一个最简单的类了,如果你有些编程经验

2020-10-16 15:14:12 187

原创 TypeScropt中的interface接口

TypeScropt中的interface接口现在我们要作一个简历的自动筛选程序,很简单。年龄小于 25 岁,胸围大于 90 公分的,可以进入面试环节。我们最开始的写法是这样的。const screenResume = (name: string, age: number, bust: number) => { age < 24 && bust >= 90 && console.log(name + "进入面试"); age > 24 ||

2020-10-16 14:09:25 243

原创 typeScript元组的使用和类型约束

typescript中元组的使用和类型约束我们先来看一个数组和这个数组注解的缺点,比如我们有一个小姐姐数组,数组中有姓名、职业和年龄,代码如下:const xiaojiejie = ["dajiao", "teacher", 28];这时候把鼠标放到xiaojiejie变量上面,可以看出推断出来的类型。我们就用类型注解的形式给他作一个注解,代码如下:const xiaojiejie: (string | number)[] = ["dajiao", "teacher", 28];这时候你已经增

2020-10-16 11:01:30 446

原创 TypeScript中数组类型的定义

TypeScript中数组类型的定义现在我们可以定义一个最简单的数组类型,比如就是数字类型,那么就可以这么写:const numberArr = [1,2,3];这时候你把鼠标放在numberArr上面可以看出,这个数组的类型就是 number 类型。这是 TypeScript 通过类型推断自己推断出来的。 如果你要显示的注解,也非常简单,可以写成下面的形式。const numberArr: number[] = [1, 2, 3];同样道理,如果你的数组各项是字符串,你就可以写成这样。co

2020-10-16 10:07:11 2180

原创 TypeScript函数参数和返回类型的注解

简单的类型定义还是上次代码function getTotal(one: number, two: number) { return one + two;}const total = getTotal(1, 2);这时候我们写的代码其实是有一个小坑的,就是我们并没有定义getTotal的返回值类型,虽然TypeScript可以自己推断出返回值是number类型。 但是如果这时候我们的代码写错了,比如写程了下面这个样子。function getTotal(one: number, two:

2020-10-15 15:23:10 2709

原创 TypeScript类型注解和类型推断

类型注解和类型推断//类型注解let count:number ;count = 123;这段代码就是类型注解,意思是显示的告诉代码,我们的count变量就是一个数字类型,这就叫做类型注解。当你明白了类型注解的概念之后,再学类型推断就更简单了,先来看一段代码。还是下面的代码。let countInference = 123;这时候我并没有显示的告诉你变量countInference是一个数字类型,但是如果你把鼠标放到变量上时,你会发现 TypeScript 自动把变量注释为了number

2020-10-15 14:29:18 462 1

原创 TypeScript静态类型

静态数据类型Static Typing什么是静态数据类型?是JavaScript的超集,是静态类型,一旦定义成某类型,将无法改变let count:number = 1;// count = "jspan"; //报错count = 2; // 正常如上代码会发现我们定义了一个基础数据类型 当我们定义了一个Numberl类型后在更改其为字符串后发现会直接报错这样ts的优势就体现出来了1.开发过程重,编写代码的时候快速发现潜在问题2.更好的代码提示3.通过静态类型的定义可以更好

2020-10-15 11:38:09 427

原创 TypeScript之HelloWorld

TypeScript全局安装ts 在安装前需要先装nodenpm install typescript -g终端输入 tsc 出现如下提示 即安装成功然后在文件夹创建一个demo1.ts文件ts之HelloWorldfunction jump(){ let web:string = "Hello world"; console.log(web);}// ts-nodejump();将此文件在终端打开 运行tsc demo1.ts会发现生成了一个对应

2020-10-15 10:45:43 796 6

原创 vue框架原理基础篇

脚手架基本配置—以及介绍接上篇文章 点击跳转上篇文章我们已经成功搭建了vue的脚手架了!但是我们还缺少一些基本的配置(如:跨域,一些插件配置,关闭eslint)在配置前我们先简单介绍下脚手架各个文件的作用吧node_modules 是这个依赖文件 是你npm安装的所有依赖都在这个文件夹下public 有的时候这个文件也可以处理一些静态资源文件 就是一些图片什么的也可以放在这个文件里面和src下asset文件有类似功能在public文件下index.html 主配置页面所有的vue页面最

2020-10-14 10:51:21 1079 1

原创 vue脚手架搭建

前言这段时间呆到公司,事情比较少!vue很早之前用过一段时间,由于现在涉及淘宝小程序比较多,Vue的学习也比较少!所以我会把vue相关的知识总结一下,由于之前一直用的是Vue2.0x所以可能涉及vue2.0x版本的东西比较多!基础篇之vue脚手架搭建一,全局安装vue脚手架全局安装下载vue脚手架,需要主要提前安装node,这里的cnpm是淘宝镜像速度比npm比较快cnpm install -g @vue/cli终端下载完成后就可以创建我们的脚手架了二,脚手架创建vue create

2020-10-13 11:41:57 185

原创 红绿灯效果

没事干的小伙伴请过来看看其实简单想想挺简单的<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head><s

2020-10-09 16:52:21 281 2

原创 简单实用的进度条

分享一个纯手写进度条<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head><body> &l

2020-10-09 11:04:35 73

原创 mysql安装教程及安装时的那些坑

下载分享给小白~~~~首先,去数据库的官网 点击下载下载MySQL。http://www.mysql.com进去之后往下拉点进去继续点进去下载OK!安shizi装没错传说中的傻瓜式安装~~~一路next 看到 execute 执行就好到这里的时候输入你的密码注意 注意 注意 -------------------------------------------------本人强烈建议密码不要太简单~~不然后期代码连接的时候 什么安全策略 你能烦死 ~建议八

2020-09-25 17:53:41 1656

原创 获取四位随机验证码

验证码字母加数字四位随机/* 获取某个范围的随机整数 */let myRandom = (min, max) => { return Math.floor(Math.random() * (max - min + 1) + min)}/* 如何获取随机验证码 (四位,数字+字母(大写))*/let createCode = () => { // 设置默认的字符串 let code = '' // 设置长度 let codeLength = 4 let ran

2020-09-24 10:07:42 1147

原创 倒计时

完全是写给自己看,如果你有幸看到 不懂的可以滴滴 从当前时间到指定日期 差几天几时几秒 倒计时<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</tit

2020-09-18 16:56:29 179

原创 图片压缩工具

分享一个图片压缩工具在项目上线之前,为了提高页面流畅度!我们会进行图片压缩https://tinypng.com/这个工具非常好用点击此处上传图片上传完成后点击这里全部下载即可

2020-09-16 16:34:03 63

原创 数组随机排列

数组方法随机排列 let arr = ["a", "b", "c", "d", "e", "f", "g"]; let j , temp; for (let i = arr.length - 1; i > 0; i--) { j = Math.floor(Math.random() * (i + 1)); temp = arr[i]; arr[i] = arr[j]; arr[j] = temp;

2020-08-26 15:38:51 193

原创 es6汇总1

//-------------------------1.let命令 // ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。 // var命令会发生“变量提升”现象,即变量可以在声明之前使用,值为undefined。为了纠正这种现象,let命令改变了语法行为,它所声明的变量一定要在声明后使用,否则报错。这在语法上,称为“暂时性死区”(temporal dead zone,简称TDZ)。例如:在let x前增加一句typeof

2020-08-26 14:39:16 105

原创 json文件转Excel

数据导出1.懒人模式复制这段代码即可缺点:出错不好维护!<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1

2020-08-25 15:30:17 1015

原创 数组对象去重

简单的数组去重在开发过程中经常会遇到去重首先简单的去重话无非就是一个数组里面有重复的数据例如let array = ["苹果","香蕉","西瓜","西瓜"];let newarray = [];for(let i=0;i<array.length;i++){ if(newarray.indexOf(array[i])==-1){ newarray.push(array[i]); }}console.log(newarray);这样无非是利用数组方法ind

2020-08-14 14:40:41 568

原创 淘宝小程序绘制图片并保存

绘制图片进行保存如何实现在小程序中绘制图片,并且进行保存?1.首先淘宝小程序提供了保存图片的对应APihttps://open.taobao.com/docV3.htmspm=a219a.7386797.0.0.4a2e669aRxfOyH&source=search&docId=952&docType=20my.saveImagemy.saveImage({ url: 'https://img.alicdn.com/tps/TB1sXGYIFXXXXc5X

2020-07-31 14:56:08 1148

原创 常见的抽奖逻辑

抽奖逻辑这段时间大概做了很多这种类似抽奖的活动!苦逼的我本来是搞前端的!但是由于一些原因换了家公司后!现在前后端都得搞!所以就写一些逻辑性很多,很多的东西不多扯了 说重点吧!抽奖逻辑这块大概是这样的。每次抽奖都会从奖品表抽取一个送给用户,这里主要需要考虑到库存不足,和并发的可能。什么是并发呢?就是比如甲,乙两个人同时抽奖,但是商品只剩一个了,但是两个都中奖了,那么我该怎么发放奖品呢?至于处理这个并发呢?我是通过sql实现的UPDATE price_table set outnumber = o

2020-07-30 16:46:22 3180 1

原创 二维码生成库

qrcodeQRCode.js 是一个用于生成二维码的 JavaScript 库。主要是通过获取 DOM 的标签,再通过 HTML5 Canvas 绘制而成,不依赖任何库。1.使用下载需要引入它的js文件http://davidshimjs.github.io/qrcodejs/2.用法<template> <div> <div id="qrcode"></div> </div></template>&

2020-07-22 16:53:11 371

原创 分享几个js时间转化方法

js时间转化方法就我了解时间转化方法其实有很多,并且市场上还有很多基于是转化的所封装的库1.moment库http://momentjs.cn/docs/这个库用起来很方便有兴趣的小伙伴可以去看看,官网讲解的超级详细!2.js手写方法接下来就是我自己写的一个转化方法 var curentTime = function (time) { var d = time ? new Date(time) : new Date(); var localTime = d.

2020-07-22 11:37:58 371

原创 前端中发送数据的方式原生Ajax,axios,fetch

Ajax什么是AJAX?AJAX(Asynchronous JavaScript And XML),(异步 JavaScript 和 XML),中文名:阿贾克斯。是指一种创建异步交互式网页应用的网页开发技术。AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术前端通过与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的...

2020-04-02 23:03:33 434 1

原创 react中函数式组件React Hooks

React Hooks函数式组件使用hooks理由高阶组件为了复用,导致代码层级复杂生命周期的复杂写成functional组件,无状态组件,因为需要状态,又改成了class,成本高在16.8版本之前函数式组件无法写状态所以一般只能用class组件成本比较高代码嵌套比较深,并且钩子函数(生命周期相对来说过于复杂)在16.8之后出了函数式组件的状态后,很好的解决了这些弊端。useSt...

2020-03-31 00:30:13 3696

淘宝小程序编辑器,编辑器

前端开发是创建Web页面或app等前端界面呈现给用户的过程,通过HTML,CSS及JavaScript以及衍生出来的各种技术、框架、解决方案,来实现互联网产品的用户界面交互。它从网页制作演变而来,名称上有很明显的时代特征。

2020-10-13

空空如也

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

TA关注的人

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