express路由和中间件
路由
简单来说,express路由就是用来处理一些请求,响应一些url地址。
var express = require('express');
var app = express();
app.get('/',function(req,res){...})
app.post('/add',function(req,res){...})
但是如果一个网站有很多的请求路由,只是通过简单的app.get或者app.post,这样会显得很繁琐。所以就出现了中间件。
中间件
1.定义:所谓中间件,就是在收到请求和发送响应之间这个阶段执行的一些函数。
2.常用的中间件
static中间件
用来访问静态文件。
app.use(express.static(path.join(__dirname, 'public')));
body-parser中间件
1.作用:用来解析http请求体。
app.use(bodyParser.json()); //用来解析json数据格式
app.use(bodyParser.urlencoded({ extended: false }));//用来解析通常form表单提交的数据,也就是请求头中包含这样的信息: Content-Type: application/x-www-form-urlencoded
2.api(对请求体的四种解析方式)
bodyParser.json(options): 解析json数据
bodyParser.raw(options): 解析二进制格式(Buffer流数据)
bodyParser.text(options): 解析文本数据
bodyParser.urlencoded(options): 解析UTF-8的编码的数据。
在大型项目中的路由中间件
一般自己在写小项目的时候,会把路由控制的部分写在app.js中,但是这样会显得很乱,但是在实战项目中基本上不会这样来写,因为随着项目的庞大,app.js入口文件中的路由控制将会越来越复杂,所以,实际项目会将不同的业务逻辑交给不同的模块来负责。
-node_modules
-api
-index.js
-routes
-index.js
-app.js
-package.json
将对路由控制的具体响应写在api目录下。然后在routes目录下引入,使用中间件的方式use。然后再在app.js中引入routes目录下的。
此处学习来自http://www.jianshu.com/p/0ed0dc3621b0
express路由和中间件的更多相关文章
- nodejs开发 express路由与中间件
路由 通常HTTP URL的格式是这样的: http://host[:port][path] http表示协议. host表示主机. port为端口,可选字段,不提供时默认为80. path指定请求资 ...
- NodeJS基础之Express路由和中间件
路由 路由是指如何定义应用的端点(URIs)以及如何响应客户端的请求. 路由是由一个 URI.HTTP 请求(GET.POST等)和若干个句柄组成,它的结构如下: app.method(path, [ ...
- express 洋葱模型 路由管理 中间件
express 路由管理,通过 app.express(); app.METHOD(path,fn(req, res)的方式进行路由的配置.实现了请求的接口的路由的拆分.那么可以将路由配置,分发到不 ...
- express-13 中间件
简介 从概念上讲,中间件是一种功能的封装方式,具体来说就是封装在程序中处理HTTP请求的功能. 中间件是在管道中执行的,在Express程序中,通过调用app.use向管道中插入中间件.(在Expre ...
- Node.js express路由简单分析
这2天看了一点node+express的路由源码有了一点眉目,总结一下 对于app.get, 首先给出一张类图: 图1 注意每个路由有一个stack,这个stack中存放了Layer. 路由系统内有三 ...
- node.js之路由,中间件,ge请求和post请求的参数
一.路由 1.什么是路由 服务器需要根据不同的URL或请求来执行不一样的操作,我们可以通过路由来实现这个步骤 2.实现路由的方法 2.1.get请求访问网址时,做什么事 1 app.get(" ...
- 9. http协议_响应状态码_页面渲染流程_路由_中间件
1. http协议 超文本传输协议 协议详细规定了 浏览器 和 万维网服务器 之间互相通信的规则 客户端与服务端通信时传输的内容我们称之为报文(请求报文.响应报文) 常见的发送 get 请求方式 在浏 ...
- 理解express中的中间件
express是轻量灵活的node.js Web应用框架”.它可以帮助你快速搭建web应用.express是一个自身功能极简,完全是由**路由**和**中间件**构成的一个web开发框架,本质上说,一 ...
- express中的中间件理解
什么是中间件 中间件是一个可访问请求对象(req)和响应对象(res)的函数,在 Express 应用的请求-响应循环里,下一个内联的中间件通常用变量 next 表示.中间件的功能包括: 执行任何代码 ...
随机推荐
- Port-knocking 简单教程
0. "port knocking" 如字面意思,类似'敲门',只是这里敲的是'端口',而且需要按照顺序'敲'端口.如果敲击规则匹配,则可以让防火墙实时更改策略.从而达到开关防火墙 ...
- perl6中的hash定义(2)
use v6; , :b, :!c; say %ha; say %ha<a>; #这里不能用%ha{a}, {a}表示调用a()函数了, 在perl6中, {}有特别函义 say %ha{ ...
- AlertDialog.Builder 显示为白色 蓝色字
AlertDialog.Builder dialog = new AlertDialog.Builder( getActivity(),AlertDialog.THEME_HOLO_LIGHT);
- uboot makefile构建分析
前言 几年前分析过uboot的构建及启动过程,做了笔记,但最终没有转为文章.这次又有机会开发嵌入式产品了(之前一年多都是在搞x86 linux),看了下uboot的构建过程,觉得有必要写下整个分析过程 ...
- OpenRCT2-ext
https://github.com/RollingStar/RCT-Music-Patch https://github.com/seanfisk/rct2-game-objects https:/ ...
- 不要用Serverzoo 提供的CloudLinux 的五大原因 Linode 強大VPS 資源為你解密
不要用Serverzoo 提供的CloudLinux 的五大原因 Linode 強大VPS 資源為你解密 https://www.williamformosa.com/cloud-linux/
- 对list对象进行排序
List<LjlSevOrdersVO> list = ljlSevOrdersService.findSevForOrders(ljlSevOrdersVO); //查出所有是自愿者的订 ...
- 7:django 中间件
中间件 中间件是一个连接django请求/相应处理的框架,是一个轻量级的低层次的全局影响django输入输出的系统插件. 每一个中间件组件负责一些特定的功能,这里我们我们只看一下如何激活使用系统自带的 ...
- P2725 邮票 Stamps(完全背包+限制填充数)
题目链接:https://www.luogu.org/problem/show?pid=2725 题目大意:给一组 N 枚邮票的面值集合(如,{1 分,3 分})和一个上限 K —— 表示信封上能够贴 ...
- JS作用域和ASP(vbs)作用域比较
一.js作用域,先上图: 以上代码执行的效果是,依次弹出 undefined, undefined, a, a,为什么是这样的结果啦?因为JS的作用域为链式作用域. 作用域链: 用VAR声明一个变量时 ...