OPTIONS请求是信使请求,在跨域请求之前,浏览器会先发送OPTIONS请求去获取服务器请求访问头,如果OPTIONS请求被拒绝,则不会继续后续的GET/POST/PUT/PATCH等操作。前面请求,由于只是去探路的,只请求数据头部,所以返回空是正常的。如果前面的OPTIONS访问的头部信息被服务器拒绝,那么后面一次请求就不会被发起。这个是HTTP自身的特性,不用特意去处理,如果是自己的服务器的话,只需要在后台给所有的OPTIONS类型请求返回空就可以了(这只是以防万一,因为OPTIONS只请求数据头部,总是会返回空)。网上找到这个说法:https://segmentfault.com/q/
野猪佩奇 2017-12-11 JavaScript 1201
PATCH方法是新引入的,是对PUT方法的补充,用来对已知资源进行局部更新. patch方法用来更新局部资源,这句话我们该如何理解? 假设我们有一个UserInfo,里面有userId, userName, userGender等10个字段。可你的编辑功能因为需求,在某个特别的页面里只能修改userName,这时候的更新怎么做? 人们通常(为徒省事)把一个包含了修改后userName的完整userInfo对象传给后端,做完整更新。但仔细想想,这种做法感觉有点二,而且真心浪费带宽(纯技术上讲,你不关心带宽那是你土豪)。 于是patch诞生,只传一个userName到指定资源去,表示该请求是一个局
野猪佩奇 2017-12-02 开发技巧 1072
全局唯一标识符(GUID,Globally Unique Identifier)也称作 UUID(Universally Unique IDentifier) 。GUID是一种由算法生成的二进制长度为128位的数字标识符。GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中的 x 是 0-9 或 a-f 范围内的一个32位十六进制数。在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。GUID 的总数达到了2^128(3.4×10^38)个,所以随机生成两个相同GUID的可能性非常小,但并不为0。GUID一词有时也专指微软对UUID
野猪佩奇 2017-11-29 JavaScript 951
FormData对象用以将数据编译成键值对,以便用XMLHttpRequest来发送数据。其主要用于发送表单数据,但亦可用于发送带键数据(keyed data),而独立于表单使用。如果表单enctype属性设为multipart/form-data ,则会使用表单的submit()方法来发送数据,从而,发送数据具有同样形式。 链接到章节从零开始创建FormData对象 你可以自己创建一个FormData对象,然后调用它的append()方法来添加字段,像这样: var formData = new FormData(); formData.append("username",
野猪佩奇 2017-11-29 JavaScript 828
在Express.js中处理文件上传,通常需要借助第三方中间件,如multer,它是一个Node.js的中间件,用于处理multipart/form-data类型的HTTP请求,主要用于文件上传。 以下是如何使用multer在Express.js应用中实现文件上传的基本步骤: 1. 安装multer 首先,你需要安装multer。可以通过npm或yarn来安装: Bash npm install multer # 或者 yarn add multer 2. 导入并配置multer 在你的Express应用中导入multer,然后根据需求配置存储引擎。multer提供了内存存储和磁盘存储两种方
野猪佩奇 2017-11-29 Node.js 1347
安装方法1.使用CDN直接引用 script src="https://unpkg.com/vue/dist/vue.js" /script script src="https://unpkg.com/vue-i18n/dist/vue-i18n.js" /script 2.NPM$ npm install vue-i18n3.Yarn$ yarn add vue-i18n使用方法在这里只介绍vue的使用方法 script /* 国际化使用规则 */ import Vue from 'vue' import Vu
野猪佩奇 2017-11-19 JavaScript 1031
在MySQL数据库中,mysql-bin.000001、mysql- bin.000002等文件是数据库的操作日志,例如UPDATE一个表,或者DELETE一些数据,即使该语句没有匹配的数据,这个命令也会存储到日志文件中,还包括每个语句执行的时间,也会记录进去的。这样做主要有以下两个目的:1:数据恢复如果你的数据库出问题了,而你之前有过备份,那么可以看日志文件,找出是哪个命令导致你的数据库出问题了,想办法挽回损失。2:主从服务器之间同步数据主服务器上所有的操作都在记录日志中,从服务器可以根据该日志来进行,以确保两个同步。处理方法分两种情况:1:只有一个mysql服务器,那么可以简单的注释掉这个
野猪佩奇 2017-11-14 MySQL 873
CommonJS2009年,美国程序员Ryan Dahl创造了node.js项目,将javascript语言用于服务器端编程。这标志"Javascript模块化编程"正式诞生。因为老实说,在浏览器环境下,没有模块也不是特别大的问题,毕竟网页程序的复杂性有限;但是在服务器端,一定要有模块,与操作系统和其他应用程序互动,否则根本没法编程。NodeJS是CommonJS规范的实现,webpack 也是以CommonJS的形式来书写。定义模块根据CommonJS规范,一个单独的文件就是一个模块。每一个模块都是一个单独的作用域,也就是说,在该模块内部定义的变量,无法被其他模块读取,除非定义为global
野猪佩奇 2017-11-04 JavaScript 885
简介MD5(Message-Digest Algorithm)是计算机安全领域广泛使用的散列函数(又称哈希算法、摘要算法),主要用来确保消息的完整和一致性。常见的应用场景有密码保护、下载文件校验等。本文先对MD5的特点与应用进行简要概述,接着重点介绍MD5在密码保护场景下的应用,最后通过例子对MD5碰撞进行简单介绍。特点运算速度快:对jquery.js求md5值,57254个字符,耗时1.907ms输出长度固定:输入长度不固定,输出长度固定(128位)。运算不可逆:已知运算结果的情况下,无法通过通过逆运算得到原始字符串。高度离散:输入的微小变化,可导致运算结果差异巨大。弱碰撞性:不同输入的
野猪佩奇 2017-11-03 Node.js 816
1、普通字符串//编码new Buffer(String).toString('base64');//解码new Buffer(base64Str, 'base64').toString();2、十六进制Hex//编码new Buffer(String, 'base64').toString('hex');//解码new Buffer(base64Str, 'hex').toString('utf8');3、图片const fs = require('fs');//编码functio
野猪佩奇 2017-11-03 Node.js 902
以前,Promise库有promise,Q,bluebird等,后来,ES6中也新增了原生Promise。Promiss/A+规范 https://promisesaplus.com/An open standard for sound, interoperable JavaScript promises—by implementers, for implementers.一个健全的通用JavaScript Promise开放标准,源于开发者,并归于开发者function test(resolve, reject) { var time = Math.random(); i
野猪佩奇 2017-10-29 Node.js 954
##场景远古时代我们在编写express后台,经常要有许多异步IO的处理。在远古时代,我们都是用chunk函数处理,也就是我们最熟悉的那种默认第一个参数是error的函数。我们来模拟一个Mongo数据库的操作,感受一下。mongoDb.open(function(err, db){ if(!err){ db.collection("users", function(err, collection){ if(!err){ let person = {name: &q
野猪佩奇 2017-10-29 Node.js 979
GitHub.com 现在不再使用字体来输出图标了。我们把代码库中所有的 Octicon 替换成了 SVG 版本。虽然这些改动并不那么明显,但你马上就能体会到 SVG 图标的优点。Octicon 上的对比切换到 SVG 以后,图标会作为图片渲染而非文字,这使其在任何分辨率下都能很好地在各种像素值下显示。可以比较一下左侧放大后的字体版本和右侧清晰的 SVG 版本。为何使用 SVG?图标字体渲染问题图标字体从来只是一种 hack。我们之前使用一个自定义字体,并将图标作为 Unicode 符号。这样图标字体就可以通过打包后的 CSS 来引入。只要简单地在任意元素上添加一个 class,图标就
野猪佩奇 2017-10-26 CSS 940
Express 是一个基于 Node.js 的 web 应用框架,它简化了 web 应用的开发过程。中间件是 Express 应用程序的核心特性,它们是请求处理链中的函数,可以执行各种任务,如响应处理、路由、错误处理等。下面是一个关于如何在 Express 中使用中间件的简明教程。 1. 安装 Express 首先,确保你已经安装了 Node.js。然后,在命令行中创建一个新的项目目录,并初始化 npm: Bash mkdir myapp cd myapp npm init -y 接着,安装 Express: Bash npm install express 2. 创建基本的 Expres
野猪佩奇 2017-10-26 Node.js 915
nodemon nodemon 是一个工具,用于项目代码发生变化时可以自动重启,nodemon 本意时检测项目变化的,对项目做监控的。重启只是它的一个功能。 install 安装 nodemon 需要使用 npm,没有安装 npm 的请看 node.js 安装 npm install -g nodemon 或则安装在本地 npm install nodemon --save 配置 在项目目录下创建 nodemon.json 文件 { "restartable": "rs", "ignore": [ ".git", ".svn", "node_modules/**/node_modules"
野猪佩奇 2017-10-25 Node.js 2400
transition-timing-function属性指的是过渡的“缓动函数”。主要用来指定浏览器的过渡速度,以及过渡期间的操作进展情况,其中要包括以下几种函数:
野猪佩奇 2017-10-23 CSS 1151
div class="p9biao" div class="main" div class="pics" style="left: 0px" img class="pic" src="/images/k2s/page9/a1.png" alt="" / img class="pic" src="/images/k2s/page9/
野猪佩奇 2017-09-15 JavaScript 796
网页布局(layout)是 CSS 的一个重点应用。布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。一、Flex 布局是什么?Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为 Flex 布局。.box{ display: flex; } 行内元素也可以使用 Flex 布局。.box{ displa
野猪佩奇 2017-08-02 CSS 902
骨灰级解决方案:.clear{clear:both;height:0;overflow:hidden;}上诉办法是在需要清除浮动的地方加个div.clear或者br.clear,我们知道这样能解决基本清浮动问题。但是这种方法的最大缺陷就是改变了html结构,虽然只是加个div。最优浮动闭合方案(这是我们推荐的):.clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden}.clearfix{*+height:1%;}用法很简单,在浮动元素的父云素上添加class=”demo
野猪佩奇 2017-07-31 CSS 786
function checkMobile(s){ var length = s.length; if(length == 11 && /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(14[0-9]{1})|)+\d{8})$/.test(s) ) { return true; }else{ return false; } }
野猪佩奇 2017-07-13 JavaScript 883
随机推荐
Node.js 使用 Jest 和 supertest 做接口测试
AIBOT 插件
Linux netstat 命令
Rollup 教程
WordPress RESTful API 路由代码结构
JavaScript 窗口/文档事件
Linux apt 命令
JavaScript 函数