Express系列---路由(二)

双子孤狼 2018-01-10 15:46:59 ⋅ 727 阅读

Express 是一个自身功能极简,完全是由路由中间件构成一个的 web 开发框架

概述
路由用于确定应用程序如何响应对特定端点的客户机请求
包含一个 URI(或路径)和一个特定的 HTTP 请求方法(GET、POST 等)。

语法:app.METHOD(PATH, HANDLER)

app 是 express 的实例。
METHOD 是 HTTP 请求方法。
PATH 是服务器上的路径。
HANDLER 是在路由匹配时执行的函数。

例子:

var express = require('express');var app = express();//定向HTTP请求app.get('/', function(req, res){
  res.send('hello world');
});

app.listen(3000);
路由 与 Application

创建一个Application对象实例,也就是创建一个Express应用。app对象一般在Express应用的app.js文件中创建,通过app对象,可以实现定向HTTP请求、配置中间件、渲染HTML、配置模板等。

1. 定向HTTP请求。如:app.METHODapp.param2. 配置中间件。如:app.route3. 渲染HTML视图。如:app.render4. 设置模板引擎。如:app.engine

application的主要方法

1. 绑定监听端口: app.listen(port, [hostname], [backlog], [callback])2. 定义GET/PUT/DELETE/POST
    app.get(path, callback [, callback ...])
    app.put(path, callback [, callback ...])
    app.delete(path, callback [, callback ...])
    app.put(path, callback [, callback ...])3. 定义路由处理器:app.all(path, callback [, callback ...])4. 创建路由:app.METHOD(path, callback [, callback ...])

使用正则表达式的路由路径示例:

// 匹配任何路径中含有 a 的路径:app.get(/a/, function(req, res) {
  res.send('/a/');
});// 匹配 butterfly、dragonfly,不匹配 butterflyman、dragonfly man等app.get(/.*fly$/, function(req, res) {
  res.send('/.*fly$/');
});

扩展:

1. URI:Uniform Resource Identifier,统一资源标识符;
2. URL:Uniform Resource Locator,统一资源定位符;
3. URN:Uniform Resource Name,统一资源名称。

正则表达式到底是什么东西?

字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等等。字符串是0个或更多个字符的序列。文本也就是文字,字符串。说某个字符串匹配某个正则表达式,通常是指这个字符串里有一部分(或几部分分别)能满足表达式给出的条件。
元字符,metacharacter

代码 说明
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
^ 匹配字符串的开始
$ 匹配字符串的结束


◀◀◀ 长按二维码关注




全部评论: 0

    我有话说:

    Node实战篇:Express(三)

    Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。

    Node实战篇:Express中间件与request(四)

    Express 是一个和中间件 Web 框架,其自身只具有最低程度的功能:Express 应用程序基本上是一系列中间件函数调用。

    Express 系列之---概述(一)

    Express是目前最流行的基于Node.js的Web开发框架,可以快速地搭建一个完整功能的网站。

    Kafka系列

    目的是:提供负载均衡,实现系统的高伸缩性【Sca...

    商城系统 DBShop V3.0 Beta 发布

    全新重构,首次亮相。 系统简介 DBShop企业级商城系统,使用PHP语言基于Laminas(Zendframework 3) + Doctrine 2 组合框架开发完成。可定制、多终端、多场景、多

    京东到家订单中心系统mysql到es的转化之

    原文:https://www.toutiao.com/i6796507988602389006 京东到家订单中心系统业务中,无论是外部商家的订单生产,或是内部上下游系统的依赖,订单查询的调用量都非常

    Node实战篇:阶段项目(九)

    项目整体预览 项目的github地址 界面逼格还行-_- 主要功能: 登陆; 退出; 所用的主要模块: express, .静态文件.模块分工等; express-session, 采用

    MongoDB系列之----概述(一)

    MongoDB是C++语言编写的,是一个基于分布式文件存储的开源数据库系统

    「转载」微服务分布式架构中,如何实现日志链跟踪?

    一个用户请求一个url,整个链如图,每个处理层...

    温故知新之ES6()

    紧接本系列上篇

    Node&RabbitMQ系列 延迟|死信队列

      前提 目前项目中采用ts+eggjs结合的方式,针对定时任务,采用schedule,随着业务的增多,觉得缺点啥,可能就是缺消息队列吧。上一篇文章,针对rabbitmq的基本语法进行了学习。缺乏具体的使用场景,今天找到一个文章&nbs...

    Node.js 实战篇--微信支付系列

    接上一篇首先我们看一下整体上微信小程序的开发流程图

    MongoDB 数据库的基本操作()

    MongoDB 是一个基于分布式文件存储的数据库。 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

    「轻阅读」京东商城交易系统的演进之

    原文:https://www.toutiao.com/i6762874634867048963商城服务如图所

    百度在人工智能领域再下一城,Apollo 2.0无人车美国上

    一年一度的CES2018国际消费电子展马上就要开始了,百度Apollo 2.0无人车美国上

    Redis系列:位图实战,实现打卡签到

    前言 如果要统计一篇文章的阅读量,可以直接使用 Redis 的 incr 指令来完成。 如果要求阅读量必须按用户去重,那就可以使用 set 来记录阅读了这篇文章的所有用户 id,获取 set 集合的长度就是去重阅读量。但是如...

    Redis系列四 GEO附近的人

    GEO算法 GeoHash是一种地址编码方法。将维的空间经纬度数据编码成一个字符串; 地球上的经度范围:[-180, 180],纬度范围:[-90,90]。如果以本初子午线、赤道为界,地球可以

    Fizz Gateway 1.1.1 发布,基于 Java异步框架WebFlux开发的微服务网关

    Fizz Gateway 是一个基于 Java异步框架WebFlux开发的微服务网关,能够实现热服务编排、自动授权选择、线上服务脚本编码、在线测试、高性能、API审核管理等目的,拥有强大的自定义