route 路由   (kiss my ass ヾ(゚∀゚ゞ)

  • 请求方式        get / post /  put / delete____查 / 增 / 改 / 删
  • 路由路径        必须 '/' 开头

// hotel.meituan.com/40302829/?ci=2018-12-21&2018-12-22
// 查询字符串 ?ci=2018-12-21&2018-12-22
// params 4032829

  • 回调函数句柄函数)        (req 请求信息, res 响应信息)=>{}

req.query        获取 查询字符串 参数    GET 请求

req.params        获取 params 参数

req.headers        获取请求头的所有信息

req.body        获取请求体参数    POST 请求

(默认 express 框架是解析不了请求体数据的,需要引入其他中间件实现)

返回响应(有且只能设置一个方法,否则报错)

res.download('./haha.mp4'       返回响应,让 浏览器 自动下载指定文件

res.sendFile(__dirname + '/haha.js'       返回响应,让 浏览器 自动打开指定文件

res.end()        返回一个快速响应

res.json()        返回响应,将传入的 数据 转化为 JSON 字符串 返回

res.send()        根据传入数据的类型 来自动判断,添加响应的响应头处理,相对较慢

如: <h1></h1>    会自动加上    content-type text/html; charset=utf-8

{xxx: xxx}    自动转化为 JSON,并返回

res.redirect('https://www.baidu.com')        返回响应,将 请求资源 重定向到新的地址,默认响应状态码 302

res.get()        获取 响应头 的内容

res.set('content-type', 'text/html; charset=utf-8')        设置 响应头 的内容

res.status(500)        设置 响应状态码 的内容    res.status(500).end('test');

解析规则:

所有路由和中间件都在一个数组中,js 引擎会按照代码先后顺序添加路由和中间件
当请求发送到服务器时,服务器获取当前的请求信息(请求方式、请求路由路径)
遍历数组,找到第一个匹配(请求路由路径和请求方式必须完全一致)到的路由或者中间件,执行其回调函数

意味着: 声明多个同名路由时,始终解析第一个成功解析的路由

如果没找到,返回一个状态码为 404 的响应, Cannot GET / xxx 或者 Cannot POST / xxx

  • // 1. 导入 express 模块
    const express = require('express'); // 2. 创建 app 应用对象
    const app = express(); // 3. 写业务逻辑:处理请求,返回响应 // route 路由的组成: app.请求方式('/路由路径', 句柄函数);
    app.get('/login', (request, response)=>{
    console.log(request.query);
    response.send('Login Page Response!');
    }); app.post('/register', (request, response)=>{
    console.log(request.query);
    response.send('Register Page Response!');
    }); app.post('/shop/a', (request, response)=>{
    console.log(request.query);
    response.send('Shop/a Page Response!');
    }); app.post('/shop/b', (request, response)=>{
    console.log(request.query);
    response.send('Shop/b Page Response!');
    }); //hotel.meituan.com/40302829/?ci=2018-12-21&2018-12-22
    // 查询字符串 ?ci=2018-12-21&2018-12-22
    // params 4032829 // /:id 路由, 一类路由的集合处理
    app.post('/hotel/:id', (request, response)=>{
    console.log(request.params); // {id: '123456'}
    response.send('Shop/b Page Response!');
    }); // 4. 监听端口号:一个端口号 有且只能运行 一个程序
    app.listen(3000, err=>console.log(err?err:'服务器启动成功 : http://127.0.0.1:3000'));

Node.js_express_route 路由的更多相关文章

  1. Node.js 路由

    我们要为路由提供请求的URL和其他需要的GET及POST参数,随后路由需要根据这些数据来执行相应的代码. 因此,我们需要查看HTTP请求,从中提取出请求的URL以及GET/POST参数.这一功能应当属 ...

  2. 初步掌握node的路由控制

    1.1.2:node.js的路由控制 1.运行原理 在1.1.1节中,提到过app.js中app.get("/",routes.index)可以用以下代码取代: app.get(& ...

  3. node.js 路由详解

    路由的基本使用 第一步:获取url跟目录下的字符 var http = require('http'); var url = require('url') http.createServer(func ...

  4. node/静态路由/express框架中的express.static()和app.use()

    此篇文章转载于 express框架中的express.static()和app.use() Express框架在使用app.use中传入express.static设置静态路由时,这个文件夹下的所有文 ...

  5. node.js - 路由、中间件、mysql

    这几天天天搞到这么晚,我看今天的内容看起不多啊,不知道为什么学着学着就到了这么晚.今天的内容还是有点多哈,有点自我矛盾了,再次一一道来. 1. 首先今天先看到路由的概念,什么叫做路由? 路由就是映射关 ...

  6. node之路由介绍

    路由介绍 ----路由是指向客户端提供它所发出的请求内容的机制:----对基于 Web 的客户端 / 服务器端程序而言,客户端在 URL 中指明它想要的内容,具体来说就是路径和查询字符串 下面我看看一 ...

  7. 12、Node.js 路由

    这里实现的好像就是把路由和服务器相结合起来.具体需要引入 url 模块和 http 模块为路由提供请求的 URL 和其他需要的 GET 及 POST 参数,随后路由需要根据这些数据来执行相应的代码需要 ...

  8. Node js路由

    /* 要为程序提供请求的 URL 和其他需要的 GET 及 POST 参数,随后程序需要根据这些数据来执行相应的代码. 因此,需要查看 HTTP 请求,从中提取出请求的 URL 以及 GET/POST ...

  9. 配置node 的路由

    配置路由 引入路由中间件 const Router= require('koa-router'); 实例化 const router= new Router(); 配置路由地址 router.use( ...

随机推荐

  1. Entity Framework入门教程(4)---EF中的实体关系

    这一节将总结EF是怎么管理实体之间的关系.EF与数据库一样支持三种关系类型:①一对一 ,②一对多,③多对多. 下边是一个SchoolDB数据库的实体数据模型,图中包含所有的实体和各个实体间的关系.通过 ...

  2. JAVA字符串

    字符串   1. 字符串 1.1 字符串概述和特点 java.lang.String类代表字符串. API当中说:Java 程序中的所有字符串字面值(如 "abc" )都作为此类的 ...

  3. java实现文件的断点续传

    java实现文件的断点续传: 依赖: <!--文件上传--> <dependency> <groupId>commons-fileupload</groupI ...

  4. 拆系数FFT及其部分优化

    模拟考某题一开始由于校内OJ太慢直接拆系数FFT跑不过 后来被神仙婊了一顿之后发现复杂度写炸了改了改随便过 模版题:任意模数NTT 三模数NTT 常数巨大,跑的极慢 拆系数FFT 原理是对于两个多项式 ...

  5. L1-Day3

    L1-Day31.太阳从西边落下. [我的翻译]The sun falls in the west. [标准答案]The sun sets in the west. [对比分析]落下fall与set的 ...

  6. django drf 基础学习3

    一 简述 这里来谈下一些基本原理 二 汇总 1 restful规范 1 根据method不同做不同的操作          request.method='          get(获取) 返回完整 ...

  7. Jhipster 一个Spring Boot + Angular/React 全栈框架

    Jhipster     一个Spring Boot + Angular/React 全栈框架: https://www.jhipster.tech/

  8. 008_ssl Certificate Pinning

    证书锁定Certificate Pinning技术 在中间人攻击中,攻击主机通常截断客户端和服务器的加密通信.攻击机以自己的证书替代服务器发给客户端的证书.通常,客户端不会验证该证书,直接接受该证书, ...

  9. 【原创】大数据基础之Mesos+Marathon+Docker部署nginx

    一 安装 安装docker:https://www.cnblogs.com/barneywill/p/10343091.html安装mesos:https://www.cnblogs.com/barn ...

  10. 初学python之路-day05

    每天一总结,今天学习的是数据类型及其使用方法与可变与不可变类型. 今天了解的数据类型有整型int,浮点型float,字符串类型str,布尔型bool,列表list. 整型int与浮点型float都属于 ...