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



- post



- put



- delete



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);
});




目录
相关文章
|
3月前
|
前端开发 API 开发者
Next.js 实战 (五):添加路由 Transition 过渡效果和 Loading 动画
这篇文章介绍了Framer Motion,一个为React设计的动画库,提供了声明式API处理动画和页面转换,适合创建响应式用户界面。文章包括首屏加载动画、路由加载Loading、路由进场和退场动画等主题,并提供了使用Framer Motion和next.js实现这些动画的示例代码。最后,文章总结了这些效果,并邀请读者探讨更好的实现方案。
|
4月前
|
Web App开发 JSON JavaScript
Node.js 中的中间件机制与 Express 应用
Node.js 中的中间件机制与 Express 应用
|
4月前
|
缓存 负载均衡 JavaScript
构建高效后端服务:Node.js与Express框架实践
在数字化时代的浪潮中,后端服务的重要性不言而喻。本文将通过深入浅出的方式介绍如何利用Node.js及其强大的Express框架来搭建一个高效的后端服务。我们将从零开始,逐步深入,不仅涉及基础的代码编写,更会探讨如何优化性能和处理高并发场景。无论你是后端新手还是希望提高现有技能的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
4月前
|
缓存 前端开发 JavaScript
JavaScript前端路由的实现原理及其在单页应用中的重要性,涵盖前端路由概念、基本原理、常见实现方式
本文深入解析了JavaScript前端路由的实现原理及其在单页应用中的重要性,涵盖前端路由概念、基本原理、常见实现方式(Hash路由和History路由)、优点及挑战,并通过实际案例分析,帮助开发者更好地理解和应用这一关键技术,提升用户体验。
156 1
|
4月前
|
JavaScript
使用node.js搭建一个express后端服务器
Express 是 Node.js 的一个库,用于搭建后端服务器。本文将指导你从零开始构建一个简易的 Express 服务器,包括项目初始化、代码编写、服务启动与项目结构优化。通过创建 handler 和 router 文件夹分离路由和处理逻辑,使项目更清晰易维护。最后,通过 Postman 测试确保服务正常运行。
218 1
|
4月前
|
Web App开发 JavaScript 前端开发
探索后端开发:Node.js与Express的完美结合
【10月更文挑战第33天】本文将带领读者深入了解Node.js和Express的强强联手,通过实际案例揭示它们如何简化后端开发流程,提升应用性能。我们将一起探索这两个技术的核心概念、优势以及它们如何共同作用于现代Web开发中。准备好,让我们一起开启这场技术之旅!
108 0
|
4月前
|
Web App开发 JavaScript 前端开发
构建高效后端服务:Node.js与Express框架的实践
【10月更文挑战第33天】在数字化时代的浪潮中,后端服务的效率和可靠性成为企业竞争的关键。本文将深入探讨如何利用Node.js和Express框架构建高效且易于维护的后端服务。通过实践案例和代码示例,我们将揭示这一组合如何简化开发流程、优化性能,并提升用户体验。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用技巧。
|
4月前
|
Web App开发 JavaScript 中间件
构建高效后端服务:Node.js与Express框架的融合之道
【10月更文挑战第31天】在追求快速、灵活和高效的后端开发领域,Node.js与Express框架的结合如同咖啡遇见了奶油——完美融合。本文将带你探索这一组合如何让后端服务搭建变得既轻松又充满乐趣,同时确保你的应用能够以光速运行。
81 0
|
1月前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
Node.js 是一种高效的 JavaScript 运行环境,基于 Chrome V8 引擎,支持在服务器端运行 JavaScript 代码。本文介绍如何在阿里云上一键部署 Node.js 环境,无需繁琐配置,轻松上手。前提条件包括 ECS 实例运行中且操作系统为 CentOS、Ubuntu 等。功能特点为一键安装和稳定性好,支持常用 LTS 版本。安装步骤简单:登录阿里云控制台,选择扩展程序管理页面,安装 Node.js 扩展,选择实例和版本,等待创建完成并验证安装成功。通过阿里云的公共扩展,初学者和经验丰富的开发者都能快速进入开发状态,开启高效开发之旅。