Node.js_express_route 路由
- 请求方式 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 路由的更多相关文章
- Node.js 路由
我们要为路由提供请求的URL和其他需要的GET及POST参数,随后路由需要根据这些数据来执行相应的代码. 因此,我们需要查看HTTP请求,从中提取出请求的URL以及GET/POST参数.这一功能应当属 ...
- 初步掌握node的路由控制
1.1.2:node.js的路由控制 1.运行原理 在1.1.1节中,提到过app.js中app.get("/",routes.index)可以用以下代码取代: app.get(& ...
- node.js 路由详解
路由的基本使用 第一步:获取url跟目录下的字符 var http = require('http'); var url = require('url') http.createServer(func ...
- node/静态路由/express框架中的express.static()和app.use()
此篇文章转载于 express框架中的express.static()和app.use() Express框架在使用app.use中传入express.static设置静态路由时,这个文件夹下的所有文 ...
- node.js - 路由、中间件、mysql
这几天天天搞到这么晚,我看今天的内容看起不多啊,不知道为什么学着学着就到了这么晚.今天的内容还是有点多哈,有点自我矛盾了,再次一一道来. 1. 首先今天先看到路由的概念,什么叫做路由? 路由就是映射关 ...
- node之路由介绍
路由介绍 ----路由是指向客户端提供它所发出的请求内容的机制:----对基于 Web 的客户端 / 服务器端程序而言,客户端在 URL 中指明它想要的内容,具体来说就是路径和查询字符串 下面我看看一 ...
- 12、Node.js 路由
这里实现的好像就是把路由和服务器相结合起来.具体需要引入 url 模块和 http 模块为路由提供请求的 URL 和其他需要的 GET 及 POST 参数,随后路由需要根据这些数据来执行相应的代码需要 ...
- Node js路由
/* 要为程序提供请求的 URL 和其他需要的 GET 及 POST 参数,随后程序需要根据这些数据来执行相应的代码. 因此,需要查看 HTTP 请求,从中提取出请求的 URL 以及 GET/POST ...
- 配置node 的路由
配置路由 引入路由中间件 const Router= require('koa-router'); 实例化 const router= new Router(); 配置路由地址 router.use( ...
随机推荐
- Fiddler--QuickExec
QuickExec在Fiddler中提供了比较快捷的功能服务. 在QuickExec输入框中输入命令,能快速地得到想要的结果. 快捷键:打开Fiddler后,按“Alt+q”,可将光标定位到Quick ...
- 面向对象之组合、封装、多态、property装饰器
概要: 组合 封装 property装饰器 多态 Python推崇鸭子类型:解耦合,统一标准(不用继承) 1. 组合 继承:会传递给子类强制属性 组合:解耦合,减少占用内存.如:正常继承,如果一个班级 ...
- DirectX11 With Windows SDK--21 鼠标拾取
前言 拾取是一项非常重要的技术,不论是电脑上用鼠标操作,还是手机的触屏操作,只要涉及到UI控件的选取则必然要用到该项技术.除此之外,一些类似魔兽争霸3.星际争霸2这样的3D即时战略游戏也需要通过拾取技 ...
- 使用InternalsVisibleTo给assembly添加“友元assembly”
C#的internal关键字可以使标记的方法,字段或者属性等等只能在当前assembly内部使用,那么如果其他的assembly需要使用这个internal的方法的时候怎么办呢?.NET提供了一种类似 ...
- PYTHON语言之常用内置函数
一 写在开头本文列举了一些常用的python内置函数.完整详细的python内置函数列表请参见python文档的Built-in Functions章节. 二 python常用内置函数请注意,有关内置 ...
- ArcMap修改粘滞移动容差防止要素在选择时无意拖动移动
粘滞移动容差将设置一个最小像素数,鼠标指针必须在屏幕上移动了此最小距离时,所选要素才会实际发生移动. 设置粘滞移动容差的结果是延迟移动所选要素,直到指针至少移动了这段距离.此方法可用于在使用“编辑”工 ...
- Android App性能测试之一:简介
1.性能测试 启动时间,主要测试App在启动过程中的耗时情况 CPU, 主要测试App在使用过程中的CPU占比率 流量,主要测试App在使用过程中对流量的消耗情况 电量,主要测试App在使用过程中对电 ...
- postfix - SPF 防发件人欺骗
安装 perl 依赖: yum install perl-Mail-SPF perl-Sys-Hostname-Long 下载 SPF 插件工具: wget https://launchpad.net ...
- BZOJ-2308 小z的袜子(莫队)
题目链接 题意 $n$点$m$次询问区间内随机取两个数是相同数的概率 思路 莫队入门题,对询问按块排序后更新答案,复杂度$O(n\sqrt{n})$ 代码 //#pragma comment(link ...
- 设计模式九: 观察者模式(Observer Pattern)
简介 观察者属于行为型模式的一种, 又叫发布-订阅模式. 如果一个对象的状态发生改变,依赖他的对象都将发生变化, 那么这种情况就适合使用观察者模式. 它包含两个术语,主题(Subject),观察者(O ...