node.js学习笔记(19) express路由

简介:

上一篇笔记中,我们已经使用express-generator创建过express项目。在项目的目录结构中其中一个目录就是routes。


路由是由一个 URI、HTTP 请求(GET、POST等)和若干个回调函数组成。

app.METHOD(path, [callback...], callback)

- app是express的实例

- METHOD是http的方法,post、get、put、delete......

- path是http请求的URI

- callback是当路由匹配时要执行的函数


METHOD

Express提供了很多方法,get, post, put, head, delete, options, trace...

在这里我们只尝试4个最常用的http方法:post、get、put、delete,因为这四个刚好就是对应数据库的CRUD操作。


创建一个新demo:

mkdir study19
cd study19
express demo-router
cd demo-router
npm install


修改routes/index.js如下:

var express = require('express');
var router = express.Router();

router.get('/', function(req, res, next) {
  res.render('index', { title: 'GET' });
});

router.post('/', function(req, res, next) {
  res.render('index', { title: 'POST' });
});

router.delete('/', function(req, res, next) {
  res.render('index', { title: 'DELETE' });
});

router.put('/', function(req, res, next) {
  res.render('index', { title: 'PUT' });
});


module.exports = router;

启动demo-router项目。

使用httprequester测试如下:

- get

97ee65022fd7d779a73317f0b385a78204d5607b


- post

e346332537845c6e28d7d67e630ee8e711ba971a


- put

75c1c3b5a677b734df2ba9bde69eb7605e17f6b0


- delete

16335d33558301c65972f18cd5e7fb04303e8355


PATH


1、字符串路径,必须完全匹配

//'http://localhost:3000/abc'
router.get('/abc', function(req, res, next){
  res.send('success');
});


2、通配符路径

?匹配前一个字符或组合有或没有

//'http://localhost:3000/abc'
//'http://localhost:3000/bc'
router.get('/a?bc', function(req, res, next){
  res.send('success');
});

//'http://localhost:3000/afbcd'
//'http://localhost:3000/bcd'
router.get('/(af)?bcd', function(req, res, next){
  res.send('success');
});


+ 匹配前字符的任意个数(大于0)

//'http://localhost:3000/abc'
//'http://localhost:3000/aabc'
//'http://localhost:3000/aaabc'
// 等
router.get('/a+bc', function(req, res, next){
  res.send('success');
});

* 匹配任意数量的任意字符

//'http://localhost:3000/abc'
//'http://localhost:3000/aabc'
//'http://localhost:3000/abbc'
//'http://localhost:3000/aasdsafdsfewbc'
// 等
router.get('/a*bc', function(req, res, next){
  res.send('success');
});

3、正则表达式路径

//'http://localhost:3000/abc'
router.get(/abc$/, function(req, res, next){
  res.send('success');
});

//'http://localhost:3000/abcd'
//'http://localhost:3000/1212321abcd'
//'http://localhost:3000/safewwabcd'
router.get(/.*abcd$/, function(req, res, next){
  res.send('success');
});

callback

Express的router可以为请求提供多个回调函数。

var result = '';
router.get('/abc', [function(req, res, next){
  result += 's';
  next();
}, function(req, res, next){
  result += 'u';
  next();
}, function(req, res, next){
  result += 'cc';
  next();
}, function(req, res, next){
  result += 'e';
  next();
}, function(req, res, next){
  result += 'ss';
  next();
}], function(req, res){
  res.send(result);
});




目录
相关文章
|
26天前
|
Web App开发 JavaScript 前端开发
构建高效后端服务:Node.js与Express框架的实战指南
【9月更文挑战第6天】在数字化时代的潮流中,后端开发作为支撑现代Web和移动应用的核心,其重要性不言而喻。本文将深入浅出地介绍如何使用Node.js及其流行的框架Express来搭建一个高效、可扩展的后端服务。通过具体的代码示例和实践技巧,我们将探索如何利用这两个强大的工具提升开发效率和应用性能。无论你是后端开发的新手还是希望提高现有项目质量的老手,这篇文章都将为你提供有价值的见解和指导。
|
4天前
|
JavaScript 前端开发 API
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
|
5天前
|
Prometheus 监控 Cloud Native
prometheus学习笔记之node-export
prometheus 监控 node-exporter
|
5天前
|
Web App开发 JavaScript 前端开发
构建高效Web应用:Node.js与Express框架的深度整合
【9月更文挑战第28天】在现代Web开发领域,Node.js和Express框架的结合已成为打造高性能、易扩展应用的黄金组合。本文将深入探讨如何利用这一技术栈优化Web应用架构,提供具体实践指导,并分析其性能提升的内在机制。通过代码示例,我们将展示从基础搭建到高级功能的实现过程,旨在为开发者提供一条清晰的学习路径,以实现技术升级和项目效率的双重提升。
16 3
|
14天前
|
缓存 监控 JavaScript
构建高效后端服务:Node.js与Express框架的完美结合
【9月更文挑战第18天】在数字化时代的浪潮中,后端服务的效率和稳定性成为了企业竞争力的关键。本文将深入探讨如何使用Node.js和Express框架来构建一个既高效又稳定的后端服务,同时通过实际代码示例,展示如何优化性能并确保服务的高可用性。
|
21天前
|
缓存 JavaScript 中间件
优化Express.js应用程序性能:缓存策略、请求压缩和路由匹配
在开发Express.js应用时,采用合理的缓存策略、请求压缩及优化路由匹配可大幅提升性能。本文介绍如何利用`express.static`实现缓存、`compression`中间件压缩响应数据,并通过精确匹配、模块化路由及参数化路由提高路由处理效率,从而打造高效应用。
60 7
|
23天前
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
|
21天前
|
Web App开发 缓存 JavaScript
构建高效后端服务:Node.js与Express框架的完美结合
【9月更文挑战第11天】本文将引导开发者探索如何利用Node.js和Express框架搭建一个高效的后端服务。文章不仅深入讲解了这两个工具的核心概念,还通过实际示例展示了它们的强大功能和易用性。读者将学会如何处理HTTP请求、设计RESTful API以及优化应用性能。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识,帮助你在后端开发领域更进一步。
|
4天前
|
JSON JavaScript 前端开发
构建高效Web应用:Node.js与Express框架的完美结合
【9月更文挑战第28天】在现代Web开发中,Node.js和Express框架的结合为创建高性能、易扩展的应用提供了强有力的支持。本文将深入探讨如何利用这两种技术构建一个简单但功能强大的Web服务,同时提供代码示例以加深理解。
|
9天前
|
JavaScript
Vue3基础(21)___在axios.js中使用路由跳转
本文介绍了在Vue 3中如何在axios.js中使用路由跳转,通过直接引入路由实例并使用`router.push`实现页面跳转。
25 0
下一篇
无影云桌面