自定义博客皮肤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)
  • 收藏
  • 关注

原创 MongoDB+Node.js+express简单实现数据的提交与回显

这是一个从前端到后台到数据库都是用js写的小demo,所以我们的口号是:将javascript进行到底一、项目目录从图片上也可以看出来,用了一个伪MVC的设计模式,简单来说controllers文件夹是C层,它类似于一个包工头,把所有的脏活累活都给了M层,M层得到C层的指令去拿到数据然后处理好后,再反给C层,C层把数据给V层,V层渲染数据。二、package.json{ "name"...

2018-12-29 16:54:45 3325 2

原创 MongoDB的安装、配置及简单操作

一、安装1.下载Mac中的各个版本的下载地址https://www.mongodb.org/dl/osx?_ga=2.213291732.1390518058.1530502632-576243859.1530502632选择你需要的版本进行下载。下载后的文件夹为了优雅可以给它改名位mongodb2.移动解压后的文件夹复制mogodb文件夹,然后选择前往在弹出的窗口中输入 ...

2018-12-27 20:55:56 495

原创 使用Node.js的formidable模块实现文件上传

在我上一篇写的Node.js实现简单的POST请求里面POST请求接受参数需要写两个事件,这难免有些不太方便如果我们用formidable来接受参数的话,会变得特别方便。下面我们来写一个Demo,来利用formidable来实现图片上传1.下面来看一眼 目录结构2.先来写一个简单的前端上传页面index.html<!DOCTYPE html><html lan...

2018-12-20 15:23:04 1530

原创 mac下常见vim的命令

mac下常见vim的命令:1. 在默认的”指令模式”下按 i 进入编辑模式2. 在非指令模式下按 ESC 返回指令模式3. 在”指令模式”下输入::w 保存当前文件:q 退出编辑,如果文件为保存需要用强制模式:q! 强制退出不保存修改:wq 组合指令, 保存并退出4. 在”指令模式”下移动:h 左 j 下 k 上 l 右...

2018-12-20 11:13:26 3277

原创 Node.js实现简单的POST请求

这个小demo的结构和上一篇写的Node.js实现简单的GET请求一样。唯一不同的是之前的get.js改成了post.js下面是post.js文件//这个案例展示get请求参数如何获得var finalhandler = require('finalhandler')var http = require('http')var serveStatic = require('serve-...

2018-12-19 18:31:49 5895 1

原创 Node.js实现简单的GET请求

GET请求的识别非常的简单,就是URL的识别,使用的是url.parse(req.url,true).query先来看一下目录public 下的index.html文件<!DOCTYPE html><html lang="en"><head> <meta charset="UTF

2018-12-19 17:39:28 4368 1

原创 js获取当前电脑的ip

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">

2018-12-19 15:24:33 12322 8

原创 Node.js中package.json中库的版本号详解

1.明确版本"dependencies": { "solarLunar": "1.0.0"//明确限制版本为1.0.0}2.使用"~""dependencies": { "solarLunar": "~1.0.0"//大约近似等于1.

2018-12-19 11:57:02 1415

原创 小程序的登录鉴权&&数据解密

小程序的登录鉴权&&数据解密登录流程1、用户使用wx.login获取临时code,有效期为5分钟2、将临时code传到我们自己的后端服务,调用微信的API获取用户的session_key和openid3、后端自定义新的密钥并关联返回的session_key和openid,将新的密钥返给前端4、前端发送请求的时候,带着密钥,后端进行解析后返回数据session_key和...

2018-12-17 16:38:50 1883

原创 npm包发布

npm包发布npm注册1.注册(输入用户名,密码,邮箱。注册成功会自动登录)npm adduser2.登录(输入用户名,密码就可登陆成功)npm login3.发布(注意发布必须是登录状态下)npm publishmljr-clinpm install mljr-cli -g➜ ~ mljr -h Usage: mljr <command> [opt...

2018-12-17 16:35:26 512

原创 单元测试

单元测试单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。测试框架所谓"测试框架",就是运行测试的工具。通过它,可以为 JavaScript 应用添加测试,从而保证代码的质量。类似的测试框架还有 Mocha、Jasmine、Karma、Tape 等MochaMocha(发音"摩卡")诞生于 2011 年,是现在最流行的 JavaScript 测试框架之一,在浏览...

2018-12-17 16:34:04 612

原创 websocket深入浅出

websocket简介websocket是什么答: 它是一种网络通信协议,是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。为什么需要websocket? 疑问? 我们已经有了 HTTP 协议,为什么还需要另一个协议?它能带来什么好处?答:因为 HTTP 协议有一个缺陷:通信只能由客户端发起我们都知道轮询的效率低,非常浪费资源(因为必须不停连接,或者 HTTP...

2018-12-17 16:33:17 129260 4

原创 node 网页爬虫

node 网页爬虫原理从已知的 url 中获取对应的 html 页面,通过类似 jqueryDOM 操作获取相应节点的数据,组装完成后,以 post 的形式把这些数据传递给下级。使用的 node 依赖包superagentcheeriokoa 的相关中间件superagent一个轻量的,渐进式的 ajax api,可读性好,学习曲线低,内部依赖 nodejs 原生的请求 a...

2018-12-17 16:30:57 434

原创 小程序之图片懒加载

小程序之图片懒加载效果图既然来了,把妹子都给你。定义懒加载,前端人都知道的一种性能优化方式,简单的来说,只有当图片出现在浏览器的可视区域内时,才设置图片正真的路径,让图片显示出来。这就是图片懒加载。实现原理监听页面的scroll事件,判读元素距离页面的top值是否是小于等于页面的可视高度判断逻辑代码如下element.getBoundingClientRect().top &l...

2018-12-17 16:30:13 1559

原创 Linux目录结构及文件基本操作

Linux目录结构及文件基本操作(1)区别win以存储介质为主,主要以盘符及分区实现文件管理,再下面才是目录。linux以树形目录结构的形式来构造整个系统,每一个目录不仅能使用本地磁盘分区的文件系统,也能使用网络的文件系统。结构查看内建命令&&系统命令1.内建命令要比系统论命令有比较高的执行效率。2.外部命令执行时往往需要fork出(产生出)一个子进程,而内建命...

2018-12-17 16:25:24 283

原创 koa2深入浅出

koa2基础知识分享koa 是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。 使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函数嵌套, 并极大地提升错误处理的效率。koa 不在内核方法中绑定任何中间件, 它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手。安装Koa 依赖 nod...

2018-12-17 16:23:56 613

原创 详谈 import 路径

import路径import {test} from './test';花括号import {test} from './test';import test from './test';如果有默认导出export default则可以省略花括号,且import的模块名是随意的,如:// a.jsexport default 'test';// b.jsimport a ...

2018-12-17 16:21:54 11855

原创 http缓存

http缓存都是服务端通过配置http headers来告诉浏览器是否能缓存,以及缓存多长时间。强缓存:不去请求服务端,直接从本地缓存读取资源。协商缓存:请求服务端,返回304,然后从本地缓存读取资源。强缓存浏览器不会去请求服务器,主要通过expires和cache-control控制。nginx通过配置expires指令,来控制缓存有效期。location ~ .*\.(js|...

2018-12-17 16:19:35 155

原创 用nodejs路由模拟一个apache

我们知道nodejs可以做顶级路由,但是每向浏览器请求一个资源,都要给它配置一个路由,这未免太麻烦,我们我们仿照阿帕奇做一个路由,当向浏览器请求资源的时候不用我们一个一个的配置直接上代码const http = require("http");const fs = require("fs");const url = require("url");const path = require(..

2018-12-14 21:41:42 344

原创 用JavaScript实现PHP的urlencode与urldecode函数

本文介绍了php函数urlencode的js实现方法并比较js和php各编码函数的区别。通常form表单的enctype类型为 application/x-www-form-urlencoded, 当表单提交后,提交的数据自动被编码, 规则为" 除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。", php的urlencode函数与其功能相...

2018-12-14 16:11:52 2271

原创 Linux环境变量

Linux环境变量Linux与MAC OS常用环境变量> $PATH:决定了shell将到哪些目录中寻找命令或程序 > $HOME:当前用户主目录 > $MAIL:是指当前用户的邮件存放目录。 > $SHELL:是指当前用户用的是哪种Shell。 > $HISTSIZE:是指保存历史命令记录的条数 > $LOGNAME:是指当前用户的...

2018-12-14 11:52:58 206

原创 element-ui中遇到的问题

element-ui中遇到的问题el-selectQ:回显的字段是汉字,根据对应的汉字获取ID并作为下一个联动查询的参数# 回显数据{  "carSeries":"一汽奥迪A4", "carYear":"(2003年至2005年)A4 B6",}# api:carSeries[ {"familyId":"402880ef0ca9c2b6010cc86045

2018-12-13 14:43:36 1730

原创 electron深入浅出

electron简介electron是由Github开发,是一个用Html、css、JavaScript来构建桌面应用程序的开源库,可以打包为Mac、Windows、Linux系统下的应用。electron是一个运行时环境,包含Node和Chromium,可以理解成把web应用运行在node环境中结构electron主要分为主进程和渲染进程,关系如下图electron运行packag...

2018-12-13 14:39:56 33633

原创 docker

docker基础教程:docker 从入门到实践.pdf

2018-12-13 14:38:27 159

原创 Object.defineProperty

Object.definePropertyObject.defineProperty(obj, prop, descriptor)obj 要在其上定义属性的对象。prop要定义或修改的属性的名称。descriptor将被定义或修改的属性描述符。descriptor数据描述configurableenumerablewritablevalue存储器描述getset...

2018-12-13 14:37:55 1149

原创 浅谈backstop.js

backstopjs什么是backstopBackstopJS就是一个能够实现css自动化回归测试的工具,BackstopJS是一个基于比较网站快照的变化的回归测试工具,非常适合给项目中的样式做回归测试,可以确保我们在重构网站样式的时候样式不发生变化,而且他支持设置多种浏览器尺寸,可以测试响应式布局。比较下resemble.js 和phantomCss,backstop算是比较容易上手使用...

2018-12-13 14:37:04 1957

原创 setTimeout和Promise的任务队列

setTimeout和Promise的任务队列栈,是指只有在一端进行存取的表结构。可以看做一个打开的箱子,永远只能对最上面的东西进行操作。也就是先进(栈底)后出(必须把上面的全都拿走),后进(栈顶)先出的顺序。队列,是指排队过安检,先进先出。在JS的单线程中,任务队列可以有多个。这些队列都是依靠函数调用栈来循环执行,这也就是我们常说的事件轮循。事件轮循决定了代码的执行顺序。任务队列包括宏...

2018-12-13 14:36:08 415

原创 async和await使用

async和await使用Q:假设有3个接口,A,B,C 逐次依赖,求实现方案?A–>B–>C模拟代码APIconst readFile = function (fileName) { return new Promise((resolve, reject) => { $.get(fileName).then(_ => { ...

2018-12-13 14:35:05 709 1

原创 函数的参数传递

函数的参数传递传值还是传引用?function changeStuff(num, obj1, obj2){ num = num * 10; obj1.item = "changed"; obj2 = {item: "changed"};} var num = 10;var obj1 = {item: "unchanged"};var obj2 = {ite...

2018-12-13 14:33:47 202

原创 webpack-DllPlugin优化打包性能(基于vue-cli)

1.介绍Dll这个概念应该是借鉴了Windows系统的dll。一个dll包,就是一个纯纯的依赖库,它本身不能运行,是用来给你的app引用的。打包dll的时候,Webpack会将所有包含的库做一个索引,写在一个manifest文件中,而引用dll的代码(dll user)在打包的时候,只需要读取这个manifest文件,就可以了。简单说将静态资源文件(运行依赖包)与源文件分开打包,先使用Dl...

2018-12-13 14:27:00 1262

原创 webpack打包优化

1.减小文件搜索范围配置resolve.modulesWebpack的resolve.modules配置模块库(即 node_modules)所在的位置,在 js 里出现 import ‘vue’ 这样不是相对、也不是绝对路径的写法时,会去 node_modules 目录下找。但是默认的配置,会采用向上递归搜索的方式去寻找,但通常项目目录里只有一个node_modules,且是在项目根目录,为...

2018-12-13 14:25:47 254

空空如也

空空如也

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

TA关注的人

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