3 凉音、

尚未进行身份认证

我要认证

小笨鸟

等级
TA的排名 17w+

nodejs base64 编码/解码图片或文本

文本操作很简单const encodeString = Buffer.from('Hello World').toString('base64');const deCodeString = Buffer.from(encodeString, 'base64').toString('utf-8');console.log('base64编码字符串', encodeString); // SGVsbG8gV29ybGQ=console.log('base64解码字符串', deCodeString

2020-07-09 14:40:57

uni-app nvue 阻止事件冒泡 .stop 修饰符不生效的解决方案

如下图,在事件绑定是使用了.stop事件修饰符,在H5,小程序,普通app项目中起作用,但在nvue项目中无效解决方案:在事件中添加条件编译即可// #ifdef APP-NVUEe.stopPropagation()// #endif

2020-07-08 14:41:12

express项目 apidoc 自动生成文档简洁教程

本文是关于apidoc的配置教程,具体的参数请参考官方网站全局安装apidocnpm i apidoc -g配置api-doc方式1:根目录添加apidoc.json(推荐),apidoc.json内容如下,具体属性请参考{ "name": "user-service", "version": "1.0.0", "description": "用户服务API文档", "title": "user-service API Doc", ..

2020-07-01 14:55:14

vue-cli 3 全局引入scss变量

1、安装sass-resources-loadernpm install sass-resources-loader -S2、在根路径下(package.json同级)新建vue.config.js(如果已经存在,则不用新建)vue.config.jsmodule.exports = { chainWebpack: config => { const oneOfsMap = config.module.rule('scss').oneOfs.store oneO

2020-06-01 15:05:37

Node自动重启工具 nodemon

我们在做node开发时,每一次修改文件,都需要ctrl+c退出,重新执行node xxx文件。现在,我们可以使用nodemon这个工具,它是一款非常实用的工具,用来监控你 node.js 源代码的任何变化和自动重启你的服务器。安装npm install -g nodemonnodemon将全局安装到您的系统路径。使用nodemon app.js会出现以下界面,表示启动成功我们也可以在package.json中配置脚本,就可以通过“npm run xxx”运行,比如

2020-05-29 17:09:40

MongoDB 数据库创建删除、表(集合) 创建删除、数据增删改查

MongoDb的安装与使用教程请参考我上一篇文章:NoSql、MongoDb 数据库介绍及MongoDb安装、使用1、开启mongodb服务打开cmd,输入net start MongoDb,启动成功后,输入mongo连接服务注意:如果出现“发生系统错误5”“拒绝访问”字样,极有可能是没有以管理员身份运行cmd,此时关掉窗口,重新以管理员身份运行即可输入show dbs即可查看所有数据库2、 创建数据库使用数据库、创建数据库use student如...

2020-05-27 15:03:30

NoSql、MongoDb 数据库介绍及MongoDb安装、使用

1、数据库和文件的主要区别数据库有数据库表、行和列的概念,让我们存储操作数据更方便 数据库提供了非常方便的接口,可以让 nodejs、php java .net 很方便的实现增加修改删除功能2、NoSql2.1 NoSQL 介绍 由于互联网的迅速发展,云计算与 Web2.0。这样大量的交互给数据库提出了更高的性能要求,传统的数据库(本文泛指 SQL 数据库),即关系数据库虽然具备良好的事物管理,但在处理 大量数据的应用时很难在性能上满足设计要求。NoSQL 就是主要为了解决当下大量高并.

2020-05-27 12:16:33

数据访问对象模式-前端封装本地数据存储类

数据访问对象模式(Data access object-DAO):抽象和封装对数据源的访问和存储,DAO通过对数据源链接的管理方便对数据的访问和存储。假设我们有一个功能需要本地存取数据实现而非调用后台接口,这个功能并不难,但存在以下问题数据很可能会覆盖他人的数据或被其他人员覆盖 添加一条数据需要做各个浏览器的兼容 无法知道数据存取的状态成功、失败、过期等 更多一系列的问题那么,有什么办法可以让每个人方便的管理自己的本地存储库呢?...

2020-05-22 14:51:26

浅析javascript代理模式-事件绑定与内存泄漏

代理模式(Entrust):多个对象接收并处理同一请求,他们将请求委托给另一个对象统一处理请求。在开发中我们可以利用委托模式做事件绑定以及防止内存泄露举个栗子,有一个日期列表,当用户点击日期格子的时候将格子的背景色变成灰色首先我们先看下面这一种方式var ul = document.getElementById('container'), li = document.getElementsByName('li'), i = li.length - 1; for(; i &gt.

2020-05-21 21:24:41

浅析javascript观察者模式(发布-订阅模式)与应用

观察者模式(Observer):又称作发布-订阅模式或消息机制,定义了一种依赖关系,解决了主体对象与观察者之间功能的耦合。发布订阅模式可以解决主体对象与观察者之间功能的耦合。举个栗子,一架飞机要从沈阳飞到香港,当经过北京中转站时,需要向卫星发送位置信息,卫星接收到飞机的位置信息后将消息保存在消息容器中,向订阅了飞机信息的北京站和香港站发送信息,两个站点接收到飞机的消息并做相应的处理以避免飞机事故的发生当飞机已经离开北京中转站,北京中转站就不需要再接收飞机的位置信息,因此北京中转站可以取消订阅

2020-05-21 17:56:18

链模式-jquery链式调用的原理与实现

链模式(Operate of Responsibility):通过在对象方法中将当前对象返回,实现对同一个对象多个方法的链式调用。从而简化对该对象的多个方法的多次调用时,对该对象的多次引用...说白了就是可以a().css().attr().on()这样调用方法,而不需要a().css();a().attr();a().on()这样繁琐而且要多次创建对象jQuery的设计就是通过这种模式使得代码更简洁。这种链模式是基于原型继承的,并且在每一个原型方法的实现上都返回当前对象this,使当前对象一直处于原型

2020-05-21 14:50:33

JS 利用按位非取反(~)运算符判断字符串中是否有某一个字符

本文不是讨论这个字符是什么意思,如果想了解关于按位非运算符请戳这里首先让我们来看看这一段代码if (~selector.indexOf('#')) { // 如果字符串中包含‘#’} else { // 否则}不了解~符合的小伙伴可能到这里就懵了,这是什么操作?我们都知道,在js中,str.indexOf()会返回某个指定的字符串值在字符串中首次出现的位置,如果没有找到,会返回-10在内存中的存储方式是所有位为00000000000000000那么按位取反后位16个1

2020-05-21 10:41:24

巧妙的使用模板字符串生成dom元素

通常,我们拼接dom元素字符串是这样的...function createDOM(option) { var dom = '<div class="preview-modal"><div class="preview-header">' + option.title + '<a href="javascript:void(0)" class="preview-btn-close" title="' + option.title + '"/>' + '

2020-05-16 16:39:08

vue项目全局异常日志处理方案(uni-app示例)

Vue有一个配置Vue.config.errorHandler,用于指定组件的渲染和观察期间未捕获错误的处理函数。这个处理函数被调用时,可获取错误信息和 Vue 实例。我们可以借助这个函数,进行应用的错误日志记录并做一些自定义的处理(兜底),防止出现一些严重异常导致应用挂掉。一般情况下错误日志可以在前端页面中展示,并且需要记录到数据库中。在异常发生时我们可以调用接口存储到后台,前端查询的实现可以使用状态管理(如果需要持久化存储就配合本地存储,但一般不太建议,因为异常太多的话会影响性能)首先,我们可以

2020-05-16 15:25:29

设置URL路径参数,解析URL参数函数

function throwIfMissing() { throw new Error('Missing parameter');} /* * @description 设置URL参数 * @method setUrlParams * @param {String} url url路径,如http://xxx.xx.xxx.xx或pages/veiw/login * @param {Object} params 设置的参数,对象格式,如{a: 1, b: 2} * @param {B.

2020-05-16 09:44:34

纯CSS实现可自定义间距虚线边框

<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <style> .border-wrapper { position: relative; margin: 100px auto; width: 200px; height: 50px; background: #ff0000;.

2020-05-13 11:13:45

Connection reset by 13.250.177.223 port 22 fatal: Could not read from remote repository.

git使用git push提交代码时报错Connection reset by 13.250.177.223 port 22 fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.原因:本地的id_rsa.pub和id_rsa文件无效了,需要更新,解决方案1、检查本地配置的用户名和邮箱git c.

2020-05-12 15:07:29

uni-app使用字体图标(iconfont)

1、打开阿里巴巴字体图标网站,选择图标库2、选择想要的图标,点击购物车图标添加入库,依次添加想要的图标,完成后点击右上角的购物车图标3、点击添加至项目(如果没有新建过项目,这里会显示“添加项目”),选择(或新增)一个项目4、点击下载至本地5、解压下载的文件,复制iconfont.css至项目的static目录下6、按照以下描述处理文件7、处理完成后的文件8、在APP.vue中引入图标9、页面中使用10、...

2020-05-11 09:52:43

前端利用canvas绘制水印

// watermark.js// text: 水印文字function watermarkByCanvas(text) { var id = '1.23452384164.123412415'; var confg = { canvasSize: 200, canvasFontSize: '14px sans-serif', canvasTextColor: 'rgba(200, 200, 200, 0.30)', canvasRotate: -30 * Math.PI / 1.

2020-05-09 18:56:04

javascript数据类型校验常用函数

// 判断是否为JSON对象function isJson(obj) { return typeof(obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object object]" && !obj.length;}// 判断是否为数值function isNumber(obj) { var reg_exp = /^[0-9]+$/; if (obj == ".

2020-05-09 18:35:42

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。