文章导读 cookie-parser是Express的中间件,用来实现cookie的解析,是官方脚手架内置的中间件之一. 它的使用非常简单,但在使用过程中偶尔也会遇到问题.一般都是因为对Express + cookie-parser的签名.验证机制不了解导致的. 本文深入讲解Express + cookie-parser的签名和验证的实现机制,以及cookie签名是如何增强网站的安全性的. 文本同步收录于GitHub主题系列<Nodejs学习笔记> 入门例子:cookie设置与解析 先从最简单…
简介 HTTP是无状态协议.当浏览器中加载页面,然后转到同一网站的另一页面时,服务器和浏览器都没有任何内在的方法可以认识到,这是同一浏览器访问同一网站.换一种说法,Web工作的方式就是在每个HTTP请求中都要包含所有必要的信息,服务器才能满足这个请求. 所以需要用某种办法在HTTP上建立状态,于是便有了cookie和会话. 关于cookie cookie的想法很简单:服务器发送一点信息,浏览器在一段可配置的时期内保存它.发送哪些信息确实是由服务器来决定:通常只是一个唯一ID号,标识特定浏览器,从…
express 最佳实践(二):中间件 第一篇 express 最佳实践(一):项目结构 express 中最重要的就是中间件了,可以说中间件组成了express,中间件就是 express 的核心.下面来讲几个有用的中间件的写法. 错误处理中间件 这块中间件非常基础,分成两个维度,第一个维度:客户端错误,服务器端错误:第二个维度:页面错误,ajax错误. 之所以分成两个维度来说,是因为,客户端和服务器端处理的错误的地方在两个中间件中,不在一个地方处理. 客户端的发出的错误只可能是:路由错误.也…
Node中的核心模块分两类:一类是自带的核心模块,如http.tcp等,第二类是第三方核心模块,express就是与http对应的第三方核心模块,用于处理http请求.express在3.0版本中自带有很多中间件,但是在express 4.0以后,就将除static(静态文件处理)以外的其他中间件分离出来了:在4.0以后需要使用中间件时,就需要单独安装好相应的中间件以后调用,以下3.0与4.0中间件的中间件区别(3.0是内置中间件属性名,4.0是需要安装的中间件名称): Express 3.0…
body-parser Node.js(Express) HTTP请求体解析中间件 2016年06月08日     781     声明 在HTTP请求中,POST.PUT和PATCH三种请求方法中包含请求体,Node.js 原生HTTP模块中,请求体要基于流的方式接收和解析.body-parser是一个HTTP请求体解析中间件,使用这个模块可以解析JSON.Raw.文本.URL-encoded格式的请求体,Express框架中就是使用这个模块做为请求体解析中间件. 请求体解析 1.1 原生环境…
ORM操作 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术. 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中. ORM在业务逻辑层和数据库层之间充当了桥梁的作用. ORM由来 让我们从O/R开始.字母O起源于"对象"(Object),而R则来自于"关系"(Relational). 几乎所有的软件开发过程中都会…
1.  什么是router路径,什么是middleware? 我们输入www.baidu.com 来访问百度的主页,浏览器会自动转换为 http://www.baidu.com:80/(省略一些参数). http://代表我们同服务器连接使用的是http协议,www.baidu.com 代表的是服务器的主机地址,会被我们的pc通过DNS解析为IP地址.80是默认的应用层端口./ 即为我们访问的服务器(www.baidu.com)的路径,服务器要对我们访问的这个路径做出响应,采取一定的动作.我们可…
一.http协议 是浏览器和web服务器之间的通信协议 1.通用头信息 request url:请求的url,向服务器请求的数据 request method:请求的方式   get.post status code:响应的状态码 2.响应头信息 connection:连接方式,keep-alive持久连接 Content-Type:响应的文件类型 Content-Enncoding:压缩类型gzip data:响应的时间 transfer-Ending:响应的传输方式 location:响应的…
0819自我总结 一.session与cookie 1.django设置session request.session['name'] = username request.session['age'] = 13 会自动生成一个sessionid为key:{"name":'username', 'age':12}为值的key,在django中后面值部分会进行加密 2.获取session request.session.get('name') 3.django中五种session设置 1…
express 路由管理,通过 app.express();  app.METHOD(path,fn(req, res)的方式进行路由的配置.实现了请求的接口的路由的拆分.那么可以将路由配置,分发到不同的文件中,进行分类管理.非常的nice.那么单个接口的能不能拆分更小的粒度尽心管理呢,答案是可以的.那就是中间件的方式. express在路由函数回调函数中进行中间件处理的方式是依赖于,回调函数的第三个参数next ,如下: app.get('/',function(req, res,next){…