- 博客(27)
- 收藏
- 关注
原创 express+passport登陆认证
文章目录express+passport登陆认证概述策略strategyexpress结合passport实现登陆认证步骤1. 新建项目2. 配置中间件:(有顺序)3. 定义认证策略express+passport登陆认证概述passport.js是node中得一个做登录验证的中间件,极其灵活和模块化,并可与express,sails等web框架无缝集成。passport的目的只有“登录验证...
2019-02-17 17:34:24 741
原创 关于app.use(express.static)的细节
app.use(express.static使用express框架做web服务器的人一定使用过app.use(express.static(__dirname+'/public'));或者是app.use(express.static(path.join(__dirname, 'public'))); //需要引入path模块这两个都是用来设置静态文件目录的。使用这句代码的时他到底...
2019-02-10 14:07:09 1965
原创 nodejs中的cookie和session
nodejs中的cookie和session因为http是一种不保存状态的协议,即无状态协议。HTTP协议自身不对请求和相应之间的通信状态进行保存。也就是说在HTTP这个级别,协议对于发送过的请求和相应都不做持久化处理。这就表示每次刷新都需要重新登录,十分麻烦。所以服务端为了处理这个麻烦出现了cookie和session.cookie和session的区别cookie数据存放在客户的浏览器...
2019-02-10 14:06:49 700
原创 CSS媒体查询
CSS媒体查询使用媒体查询,可以针对不同的媒体类型定义不同的样式。如果希望做出响应式的页面,@media是身份必要的。语法@media mediatype and|not|only (media feature) { CSS-Code;}你也可以针对不同的媒体使用不同stylesheets(css2)<link rel="stylesheet" media="medi...
2019-01-27 19:51:50 560
原创 mysql的学习笔记
文章目录mysql的学习笔记基本概念安装mysql常用的语法启动和关闭命令分类DDLDMLDCLDQL基础查询条件查询模糊查询去除重复记录排序聚合函数分组查询LIMIT多表查询合并结果集连接查询内连接左连接右连接自然连接子查询完整性约束主键(primary key)主键自增长(auto_increment)非空(not null)唯一(unique)外键(foreign key)检查(CHECK)...
2019-01-26 23:39:11 156
原创 网页自适应手机屏幕的几种方法
网页自适应手机屏幕的几种方法一. 允许网页宽度自动调整&lt;meta name="viewport" content="width=device-width, initial-scale=1" /&gt;viewport是网页默认的宽度和高度,上面这行代码的意思是,网页宽度默认等于屏幕宽度(width=device-width),原始缩放比例(initial-scale=1)为1.0,...
2019-01-20 15:35:01 20312 2
原创 Webpack入门笔记(一)
Webpack入门笔记webpack是什么:入门之前首先我们要知道Webpack是什么:本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。...
2019-01-20 15:25:36 5557 1
原创 关于cheerio的api的学习笔记(二)
关于cheerio的api学习笔记这一部分包括从manipulation到Utilities的部分,然后api到这里就结束了。学了这部分内容之后感觉和jquery确实是非常像,相当于复习了部分jquery的感觉吧。然后这个学习笔记就相当于cheerio api的翻译,翻译的不好或者感觉我的表述由问题的地方我配上了原文的引用,希望对学习这一部分的人有所帮助。结构操作(manipulation...
2018-11-11 17:34:15 535
原创 Node.js爬虫初探(一)
Node.js爬虫初探首先,一个爬虫应该做到什么网络爬虫,即Web Spider。从网站一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其他链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站的所有网页都抓取完为止。如果把互联网当作一个网站,那么网络爬虫就可以用这个原理把互联网上所有的网页都抓取下来。这样看来网络爬虫就是一个爬行程序,一个抓取网页的程...
2018-11-11 17:03:37 471
原创 关于cheerio的api的学习笔记(一)
关于cheerio的api的学习笔记我看的文档因为这两周都在看Node.js实现爬虫的部分,对于cheerio这个模块的运用总是有问题出现,然后上网找了cheeriode API然后结合翻译看了一下。下面就是这一部分的学习笔记。ps.这一部分是从loading 到 traversing前言cheerio是一款非常使用的nodejs第三方包,适用于nodejs端处理html(xml也可以...
2018-11-10 20:07:23 3441
原创 Express框架的使用(安装和路由)
文章目录Express框架的使用(安装和路由)一、安装 Express 的步骤二、理解 Express三、路由路由路径路由处理程序app.route()express.Router()Express框架的使用(安装和路由)一、安装 Express 的步骤第一步: 安装cnpm install express第二步:安装几个重要模块body-parser -node.js中间件,用...
2018-10-28 21:30:40 800
原创 事件流和事件处理程序学习笔记
文章目录事件流事件冒泡事件捕获DOM事件流事件的执行顺序事件处理程序HTML事件处理程序DOM0级事件处理程序DOM2级事件处理程序IE事件处理程序跨浏览器的事件处理程序Javascript与HTML之间的交互是通过事件实现的。事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间。可以使用侦听器(或处理程序)来预定事件,以便事件发生时执行相应的代码。事件流事件流描述的是从页面中接收事件的顺...
2018-10-28 19:59:43 156
原创 px、em、rem的一些区别
px、em、rem的区别px特点:IE无法调整px作为单位的字体大小;Firefox能够调整px、em和rem。px是像素,是相对长度单位,是相对于显示器屏幕分辨率而言的。em特点:em的值并不是固定的;em会继承父级元素的字体大小。em也是相对长度单位,相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸...
2018-10-21 18:21:43 128
原创 grid 栅格布局 (一)
grid 栅格布局 (一)我们学过的布局方式我们一直以来了解到的布局方式都有哪一些?table表格布局float浮动及position定位布局,借助元素盒子模型本身的特性以及float position等属性进行布局。flex弹性盒模型布局革命性的突破,解决传统布局方案上的三大痛点:排列方向,对齐方式,自适应尺寸。是目前最为成熟和强大的布局方案。grid栅格布...
2018-10-21 18:08:08 1577
原创 Javascript数组的5种迭代方法
Javascript数组的5种迭代方法数组当中定义了5个迭代方法,传入这些方法中的函数会接受三个参数,数组项的值,该项在数组的位置,和数组对象本身,以下是5个迭代方法的作用。1. every方法:对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。let arr1 = [1,2,3,4,5,6];let arr2 = [-1,-2,-3,-4,-5...
2018-08-11 16:32:32 165
原创 [JavaScript]DOM扩展(二)
插入标记之前的DOM提供的插入节点的操作在插入多个节点的时候十分繁杂,如果使用插入标记的方法,直接向文档中插入HTML字符串,由执行环境自动解析HTML字符串并创建相应的节点并添加到文档中,这样的话操作就方便多了。innerHTML属性在读模式下,innerHTML属性返回与调用元素的所有子节点对应的HTML标记。在写模式下,innerHTML属性会根据指定的值创建新的DOM树...
2018-08-11 16:27:30 117
原创 [JavaScript]DOM扩展(一)
DOM扩展选择符APIquertSelector()方法querySeletorAll()方法上面两个方法都接受一个CSS选择符,这是一个静态的查询。matchesSelector()方法接受一个参数(CSS选择符),如果调用元素与该选择符匹配,则返回true目前没有浏览器支持该方法,但是有一些浏览器通过不规范的名字实现了它的功能chrome:we...
2018-08-11 11:46:43 273
原创 [JavaScript]BOM-1
确定滚动距离查看视口的尺寸标准模式or怪异模式查看元素的几何尺寸查看元素的尺寸查看元素的位置让滚动条滚动确定滚动距离window.pageXOffset/pageYOffset (IE8及IE8以下不兼容)document.body/doucumentElement.scrollLeft/scrolTop 兼容性比较混乱 用的时候取两个值相加(...
2018-08-11 11:43:43 289
原创 [JavaScript]几个函数的小知识
函数声明和函数表达式的区别函数声明函数表达式递归作用域链关于this对象函数声明和函数表达式的区别函数声明function functionName(arg0, arg1, arg2) { //函数体}关于函数声明,它的一个重要特征就是函数声明提升,意思是在执行代码之前会先读取函数声明。函数表达式var fu...
2018-08-05 20:01:09 123
原创 [JavaScript]用JS实现轮播图
用JavaScript实现轮播图效果第一步:HTML第二步:css样式第三步:js代码实现移动实现左右移动箭头实现自动轮播实现点击圆点移动实现圆点根据所在变色用JavaScript实现轮播图效果先附上github地址 lunbotu第一步:HTML先写html代码我将图片放进了<li>标签内,圆点和左右箭头放进...
2018-08-05 19:47:28 514
原创 [JavaScript]闭包的作用
函数闭包闭包是 JavaScript 中最强大的特性之一。JavaScript 允许函数嵌套,并且内部函数可以访问定义在外部函数中的所有变量和函数,以及外部函数能访问的所有变量和函数。但是,外部函数却不能够访问定义在内部函数中的变量和函数。这给内部函数的变量提供了一定的安全性。此外,由于内部函数可以访问外部函数的作用域,因此当内部函数生存周期大于外部函数时,外部函数中定义的变量和函数将的生存周...
2018-08-04 09:22:14 206
原创 DOM基本操作(增、删、改、查)
DOM基本操作DOM选择器(查)遍历节点树遍历元素节点树增插删替换属性DOM继承树DOM基本操作DOM基本操作document代表整个文档(html只是代表根标签)DOM选择器(查)(通过方法)getRlementById通过id拿到元素(id是唯一标识!但是id出现频率超==少==)(IE8之前的版本 name ...
2018-08-04 09:18:13 544
原创 原型链——1
关于原型链的理解这里有两个例子看到后让我觉得一目了然 var anmial = { name: "anmial", eat:function () { console.log(this.name + " is eating."); } } anmial.eat();//anmial is eating. anmial.color = "black";...
2018-07-30 08:43:22 109
原创 解构赋值.一(数组)
解构赋值.一(数组)一、数组解构赋值解构赋值.一(数组)解构赋值语法是一个JavaScript表达式,这使得可以将值从数组或属性从对象提取到不同的变量中。 (一个有趣的说法是:解构是一种打破数据结构,将其拆分为更小部分的过程。) 解构赋值表达式的值与表达式右侧(也就是=右侧)的值相等。 [注意]解构赋值表达式(也就是=右侧的表达式)如果为null或unde...
2018-07-29 21:51:38 1346
原创 【JaveScript】总结一下看的正则应用例子(顺便一些关于DOM的印象)
DOM(Document Object Model)(文档对象模型)敏感词过滤过滤HTML标签DOM(Document Object Model)(文档对象模型)通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素 通过可编程的对象模型,JavaScript获得了足够的能力来创建动态的HTMLJavaScript 能够改变页面中...
2018-07-29 20:08:18 133
原创 JavaScript的正则表达式分组模式(捕获组与非捕获组)
JavaScript的正则表达式分组模式(捕获组与非捕获组) 目录JavaScript的正则表达式分组模式(捕获组与非捕获组)捕获组捕获组的概念捕获组的分组规则:非捕获组捕获组捕获组的概念“捕获组”是正则表达式中的概念。在正则表达式中,使用“()”进行分组,一对圆括号括起来的表达式就是一个分组。var rel=/([0-9])([0-9])([0-...
2018-07-28 15:15:49 4291 2
原创 C语言_关于文件内容删除的两个方法总结
最近在写C语言的学生管理系统,遇到了关于怎么直接删除文件内容的问题我找到了两种方法- 第一种是这样 fp = fopen("users.txt", "r+"); fp1 = fopen("linshi.txt", "w+");//读写新建一个临时文件 while (fread(p1, sizeof(Node), 1, fp))//从原文件...
2018-06-03 16:49:48 44219 12
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人