自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 删除本地git账号

解决方法

2021-11-30 09:51:55 388

原创 egg文件上传

1.安装插件npm install mz mz/mz-modules2.设置在config.default.js设置以下内容 config.multipart = { mode: 'file', };3.上传//在控制器写上传const fs = require('mz/fs'); const path = require('path');const pump = require('mz-modules/pump');async doupdate(){ const fi

2021-08-21 00:33:35 399

原创 node操作存储桶

1.安装插件npm i cos-nodejs-sdk-v5 --save2.上传var COS = require('cos-nodejs-sdk-v5');var fs = require('fs');//配置参数 var cos = new COS({ SecretId: '111111111111', SecretKey: '1111111' });cos.putObject({ Bucket: '111111111', /* 存储桶名称 */ Region: '1

2021-08-20 23:00:13 577

原创 mysql事务

事务事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不 执行示例begin; update user set balance = balance-100 where id=1commit;

2021-08-17 23:06:10 73

原创 sql基础语句

查询语句select 查询的字段名 from 表 where 条件where模糊查询select * from class where email like "%qq%"; select * from class where email like "ja%"; // ja 开头的 select * from class where email like "%163.com"; //163 结尾的 select * from class where email not like "%163.

2021-08-17 22:56:51 69

原创 mysql常用命令

数据库连接mysql -u root -p查看数据库show databases;查看表show tables;选择要操作的数据库use 数据库名;创建数据库create database 数据库名;在数据里面创建表create table user( id int(2), username varchar(20));删除数据库中的表drop table 表名删除数据库drop database 数据库名显示表结构describe user;往表里

2021-08-17 00:06:51 68

原创 redis基础

redis数据类型命令行操作redis

2021-08-16 21:43:00 59

原创 mysql常用数据类型

mysql常用数据类型实际项目中一般用int数据类型存储时间戳整数型浮点型字符型备注型日期型

2021-08-15 23:24:55 59

原创 通过css变量往css里面传值

得往父级标签传变量,子级才能接受得到<body :style="{'--color':'red'}"> <p class="aiqi"></p></body><style>.aiqi{ color:var(--color)}</style>

2021-07-10 14:07:33 1408

原创 vue本页面页面刷新

App.vue<template><div id="app"><router-view v-if="isRouterAlive" /></div></template><script>export default{ provide(){ return{ reload:this.reload }},data(){ return{ isRouterAlive:true }},methods:{ re

2021-06-23 10:30:35 71

原创 express-session使用

安装npm install express-session//express-session配置app.use(session(.....))const session = require('express-session')app.post('/login',(req,res)=>{ const {username,password} = req.body if(req.body ===....){ //直接在客户端存取cookie,你每次调用接口都会发送cookie进行验证,服

2021-06-03 10:56:35 48

原创 bcryptjs 加密

用户创建时密码是加过密存到数据库的//引入加密模块const bcrypt = require('bcryptjs')//设置加密复杂程度const salt = bcrypt.genSaltSync(10)//给密码加密const hash = bcrypt.hashSync(passoword,salt)//最后存到数据库--------------------用户登录时,从数据库拿出加过密的密码,进行解密比对//从数据库拿数据const UserLoginInfo = User

2021-05-31 23:41:15 450

原创 以a链接进行下载文件

const function exportFile(blobData,fileName){ const link = document.createElement('a') const blob = new Blob([blobData],{type:blobData.type}) link.href = URL.createObjectURL(blob) link.setAttribute('download',fileName) document.body.appendChild(link)

2021-05-31 15:36:57 258

原创 elementui表格优化umy-ui

npm install umy-uivue项目main.jsimport { UTable } from 'umy-ui'Vue.use(UTable)建议用elementui组件库//把表格标签换一下即可el-table==>u-table学习来源

2021-05-31 15:35:56 658

原创 前端把文件流解析base64

接口封装export function previewAttachment(data){ return request({ url:'', method:'post', responseType:'arraybuffer', data })}用const data = await aiqi()const imgsrc = 'data:image/png;base64,'+btoa(new Uint8Array(data.data).reduce(()=>data+Str

2021-05-28 10:32:42 714

原创 mongodb

1.下载mongoose2.连接数据库 const mongoose = require('mongoose') //连接数据库 mongoose.connect('mongoose://localhost/zyf',{ useNewUrlParser: true}) //连接成功 .then(()=>{console.log('数据库连接成功')}) //连接失败 .catch(err=>{console.log(err,'数据连接失败')})3.创建文档第一种方式co

2021-05-23 16:57:54 49

原创 Object.getOwnPropertyNames获取对象长度

Object.getOwnPropertyNames(testObj).length

2021-04-28 17:20:31 210

原创 前端自适配插件postcss-px-to-viewport

npm i postcss-px-to-viewport在package.json所在目录下新建postcss.config.js文件在该文件里面配置module.exports = { plugins: { autoprefixer: {}, "postcss-px-to-viewport": { unitToConvert: "px", // 默认值`px`,需要转换的单位 viewportWidth: 750,//视窗的宽度,对应的是我们设计稿的宽度

2021-04-20 16:36:32 490 1

原创 vue3配置404页面

vue2中的(*)不适用于vue3import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'import Home from '../views/Home.vue'import noFind from '../views/404.vue'import loginRegiter from '../views/loginRegiter.vue'const routes: Array<RouteReco

2021-04-14 20:42:12 1144 1

原创 vue3基础

http://huaxhe.gitee.io/vue3_study_docs/00_%E8%AF%BE%E7%A8%8B%E4%BB%8B%E7%BB%8D.htmlsetupvue3所有的API组合都在这个函数中执行。

2021-04-10 15:19:36 188

原创 TypeScript基础

安装npm install -g typescript检测版本tsc -v让Vscode自动编译ts文件1.通过命令创建tsconfig.json自动编译文件tsc --init2.tsconfig.json自动编译文件运行

2021-04-05 22:59:23 164

原创 js高级程序设计变量、作用域与内存

变量ECMAScript两种变量原始值:简单数据引用值:由多个数据组成的对象原始值能直接访问到变量内存,而引用值只能通过引用来访问到变量内存两种变量复制值原始值:完全独立let num1 = 5; let num2 = num1;引用值:浅拷贝就是将引用指向新的值,深拷贝也是独立的浅拷贝:let obj1 = new Object(); let obj2 = obj1; obj1.name = "Nicholas"; console.log(obj2.name); // "N

2021-03-28 19:42:58 64

原创 js高级程序设计Object

Object对象对象创建的两种方式1.通过new操作符和Object构造函数let aiqi = new Object()2.通过字面量的方法let aiqi = { name:'zyf', age:'24'}对象的赋值的两种方式let aiqi = {}//1.通过点语法aiqi.name = 'zyf'//2.通过中括号aiqi['age'] = 24事实上通过点语法比较方便,但是中括号语法却能给我们带来更灵活的赋值...

2021-03-14 21:48:55 40

原创 nuxt基础

文件结构生命周期服务端钩子即在服务端运行也在客户端钩子除了beforeCreated跟created,其他vue生命周期在客户端运行获取window跟vue的this得在客户端的这些钩子获取nuxtServerInit钩子middleware钩子在nuxt.config.js下的middleware在layouts下的middleware在peges下的middleware三个middleware,执行顺序是nuxt.config.js(全局的)>layouts

2021-03-08 00:24:40 231

原创 js中将数组中字符串转换数字类型和将数组中的数字转换为字符串

js中将数组中字符串转换数字类型和将数组中的数字转换为字符串数字转换字符串var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];arr.map(String); //结果: ['1', '2', '3', '4', '5', '6', '7', '8', '9']字符串转换数字var a = ['1', '2', '3', '4', '5', '6', '7', '8', '9']a.map(Number); //结果:[1, 2, 3, 4, 5, 6, 7, 8,

2021-02-25 08:36:02 1488

原创 js删除对象里面的某一属性

在js中提供delete这个操作符可以供我们删除对象里面的某一属性var obj= { height: 180, long: 180, weight: 180, hobby: { ball: 'good', music: 'nice' }}delete obj.hobby //这样就可以删除hobby属性了

2021-02-25 08:32:10 240

原创 vue项目页面根据不同路由从而进行不同过渡动画地跳转

在App.vue中<template><div id="app"><transition mode="out-in" :leave-active-class="lac" enter-active-class="animate_animated"></transition></div></template>

2021-02-24 08:34:21 271

原创 vue中transition过渡组件

在进入/过渡中,主要有6个钩子被触发,并对应6个class的切换v-enter:进入初始状态v-enter-active:进入过渡阶段,动画‘播放阶段’v-enter-to:进入结束阶段,在元素被插入之后下一帧生效 (与此同时 v-enter 被移除),在过渡/动画完成之后移除。v-leave:离开初始阶段v-leave-active:离开过渡阶段,动画‘播放阶段’v-leave-to:进入结束阶段,在元素被插入之后下一帧生效 (与此同时 v-leave 被移除),在过渡/动画完成之后移除。

2021-02-23 15:05:30 452

原创 vue中install方法

vue提供install可供我们开发新的插件及全局注册组件等install方法第一个参数是vue的构造器,第二个参数是可选的选项对象export default { install(Vue,option){ 组件 指令 混入 挂载vue原型 }}全局注册组件import PageTools from '@/components/PageTools/pageTools.vue'import update from './update/index.vue'import Ima

2021-02-20 10:19:26 21281

原创 vue中v-model修饰符

v-model修饰符.lazy可以将原先双向数据绑定的input事件转换为change事件<input v-model.lazy="msg" />.trim 可以将用户输入的值,两边空白进行清空<input v-model.trim="msg" />.number 可以自动将用户输入的值变换为数字类型<input v-model.trim="msg" />...

2021-02-20 08:53:35 133

原创 vue-admin-teplate模板环境变量

我们可以在这两个文件中设置全局变量,进行使用例如开发时我们可以在vue.config.js中设置我们开发服务器的端口号在开发环境变量文件中设置port ,在vue.config.js文件就可使用

2021-02-19 22:29:05 366

原创 Element表单校验补充

我们尝试通过一个案例对Element的表单校验进行一下补充实现表单基本结构创建项目$ vue create login选择babel / eslint安装Element开发时依赖 : 开发环境所需要的依赖 -> devDependencies运行时依赖: 项目上线依然需要的依赖 -> dependencies$ npm i element-ui在main.js中对ElementUI进行注册import ElementUI from 'element-ui';i.

2021-02-19 21:15:52 275

原创 sass基础

sass变量1.sass变量是以 $ 开头进行标识2.任何作为css属性值都可以用作变量值,甚至以空格分割的属性值,例如 $ basic-border: 1px solid black; 还有以逗号为分割的属性值,例如 $ plain-font: “Myriad Pro”、Myriad、“Helvetica Neue”、Helvetica、“Liberation Sans”、Arial和sans-serif; sans-serif;3.变量作用域,如果变量没有声明在{}内则做全局变量皆可使用,否则只能

2021-02-19 16:26:44 195

原创 vue中keep-alive组件使用

keep-alive组件是可以用来缓存组件,避免重复渲染需要频繁渲染的组件//顶多支持10个组件的缓存,超过10个,则会销毁之前第一个缓存的组件<keep-alive :max="10"><频繁切换的子组件></keep-alive>include和exclude一般传入的是正则表达式根据表达式是否进行渲染...

2021-02-19 08:51:47 90

原创 vue中计算属性computed中get跟set的区别

计算属性computed默认只有getter这个属性,需要用setter再进行设置computed: { fullName: { // getter 只要值变化就会重新触发这个get返回新的值 get: function () { return this.firstName + ' ' + this.lastName }, // setter这个属性是在监听数据变化时进行其他数据计算的属性 set: function (newValue) {

2021-02-18 14:48:13 610

原创 vuex严格模式下,表单数据绑定vuex数据

vuex严格模式在严格模式下,无论何时发生了状态变更且不是由 mutation 函数引起的,将会抛出错误。这能保证所有的状态变更都能被调试工具跟踪到。const store = new Vuex.Store({ // ... strict: true})但是发布产品时就不能用到严格模式,所以需要我们这么写严格模式const store = new Vuex.Store({ // process.env.NODE_ENV这是全局变量 strict: process.env.NODE

2021-02-18 14:20:48 453

原创 element-ui全局设置组件大小

2021-02-18 09:11:29 4161

原创 权限

项目描述: 后台管理系统是公司内部管理系统, 考虑到使用的用户体不同 , 有人事经理, 管理员. 人事专员, 薪资专员, 普通员工等角色 , 所以我采用Rbac权限管理模式 , 将权限赋值于角色 , 角色再赋值于对应用户, 这样不同用户就拥有了不同的用户信息 , 具体操作我是在用户登录时,在路由守卫中利用vue-x 配合后端 获取当前用户登录信息, 获取相对应角色权限, 再调用router.addRouter( ) , 生成动态路由, 这样用户就只能看到, 角色相匹配的网页信息 , 左边菜单栏利

2021-02-07 08:08:05 70

原创 Eslint引用

Eslint是一种规范语法的工具第一种我们在使用vue脚手架中会自带eslint工具它会自动帮我们规范语法第二种可以通过vscode里面的插件这个插件也是采用eslint的规范帮助我们进行规范开发第三种通过npm在ESlint官网下载eslint工具...

2021-02-04 16:20:50 104

原创 深拷贝的方法

第一种 通过json字符串转换缺点:拷贝不了undefined跟函数 let aiqi = { a:1, b:[1,2,3], c:function(){ console.log('digui'); }, d:undefined } let aiqi1 = JSON.parse(JSON.stringify(aiqi)) console.log(aiqi1);第二种

2021-01-29 22:40:47 78

空空如也

空空如也

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

TA关注的人

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