第六篇:express路由拆分(模块化)

 🎬 江城开朗的豌豆:个人主页

 🔥 个人专栏 :《 VUE 》 《 javaScript 》

 📝 个人网站 :《 江城开朗的豌豆🫛 》 

⛺️ 生活的理想,就是为了理想的生活 !

在这里插入图片描述

目录

📘 引言:

📘 原来的写法

📘 精简后的写法

 📘 往期篇章推荐

⭐  写在最后


📘 引言:

当今互联网时代,Node.js 成为了最受欢迎的服务器端开发平台之一。作为一名小白,学习 Node.js 可能会让你感到有些困惑和陌生。但是,不用担心!本文将带领你进入 Node.js 的世界,帮助你理解它的基本概念和学习路径。

Node.js 是构建高性能、可扩展网络应用程序的运行时环境。它基于 Chrome V8 JavaScript 引擎,并采用事件驱动、非阻塞的 I/O 模型,使得它能够处理大量并发连接而不阻塞其他操作。这使得 Node.js 成为构建实时应用程序、聊天应用、API 服务等的理想选择。

本文旨在为初学者提供一个简单的入门指南,介绍 Node.js 的核心概念、安装和配置环境的步骤,以及使用常见的模块和工具。我们还将探索如何编写简单的服务器端代码、处理 HTTP 请求和响应、读写文件、操作数据库等常见任务。

无论你是想成为一名全职的 Node.js 开发者,还是只是对学习这门技术感兴趣,本文都将为你提供一个良好的起点。我们将尽量以简洁明了的方式解释概念,并提供实际的示例代码帮助你理解。

让我们一起开始这段令人兴奋的 Node.js 学习之旅吧!

📘 原来的写法

app.get('/user/list',(req,res)=>{
    res.send('user list');
})
app.get('/user/detail',(req,res)=>{
    res.send('user detail');
})


app.get('/goods/list',(req,res)=>{
    res.send(['可乐','雪碧','芬达']);
})
app.get('/goods/detail',(req,res)=>{
    res.send({
        name:'可乐',
        price:3,
        count:100
    });
})

📘 精简后的写法

// 创建一个路由
const user = express.Router();
const goods = express.Router();
// 添加路由
user.get('/list', (req, res, next) => {
    res.send('user list');
})
user.get('/detail', (req, res, next) => {
    res.send('user detail');
})
goods.get('/list', (req, res, next) => {
    res.send(['可乐', '雪碧', '芬达']);
})
goods.get('/detail', (req, res, next) => {
    res.send({
        name: '可乐',
        price: 3,
        count: 100
    });
})
// 使用路由
app.use('/user', user);
app.use('/goods', goods);

 📘 往期篇章推荐

 📟 第一篇:node的背景及版本的检查

 📟 第二篇:新建node项目并运行

 📟 第三篇:搭建项目的两种代码格式

 📟 第四篇:怎么写express的路由(接口+请求) 

 📟 第五篇:express路由路径方式(字符串,字符串模式,和正则)

⭐  写在最后


请大家不吝赐教,在下方评论或者私信我,十分感谢🙏🙏🙏.

✅ 认为我某个部分的设计过于繁琐,有更加简单或者更高逼格的封装方式

✅ 认为我部分代码过于老旧,可以提供新的API或最新语法

✅ 对于文章中部分内容不理解

✅ 解答我文章中一些疑问

✅ 认为某些交互,功能需要优化,发现BUG

✅ 想要添加新功能,对于整体的设计,外观有更好的建议

最后感谢各位的耐心观看,既然都到这了,点个 👍赞再走吧!
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/359881.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何保证绩效考核的准确性及公平性?

实施绩效考核是公司为了提高工作绩效,提高员工工作积极性,进而保证公司高效运行的必要手段。但是,在实际管理工作中,很难做到绩效考核的公平、公正,这就会导致员工工作热情不高,绩效考核无法发挥应有的作用…

负载均衡下的webshell连接

一、环境配置 1.在Ubuntu上配置docker环境 我们选择用Xshell来将环境资源上传到Ubuntu虚拟机上(比较简单) 我们选择在root模式下进行环境配置,先将资源文件复制到root下(如果你一开始就传输到root下就不用理会这个) …

MkDocs 部署指南

简介 MkDocs 可以同时编译多个 markdown 文件,形成书籍一样的文件。有多种主题供你选择,很适合项目使用。 MkDocs 是快速,简单和华丽的静态网站生成器,可以构建项目文档。文档源文件在 Markdown 编写,使用单个 YAML …

PMP备考笔记:模拟考试知识点总结

1. 答题思路:优先看问题,可节省时间。 2. 考试就按照考试的套路来做,不要过多考虑。 开发团队只专注当前冲刺目标,产品负责人对PB排优先级。 收集需求工具-原型法:能够让用户提前体验,减少返工的风险。 …

龙年开春,格蠹有礼——极客少年编程套餐疯狂来袭

YOUTH 龙年开春,格蠹有礼 极客少年编程套餐疯狂来袭 梁启超先生曾经说过:“少年强则国强,少年富则国富,少年智则国智。” 少年是国家的未来和希望,他们的成长和发展对国家的繁荣和发展具有重要意义。笔者曾在另一篇文章…

STM32单片机基本原理与应用(四)

直流电机驱动控制原理 1、电机正反转控制 在STM32中,直流电机的正反转控制主要通过改变电机输入电源的极性来实现。当电机的电压极性发生变化时,电机的旋转方向也会相应改变。在硬件电路中,可以通过继电器或晶体管等电子开关来切换电机的电源…

142:vue+leaflet 加载tomtom地图(多种形式)

第142个 点击查看专栏目录 本示例介绍如何在vue+leaflet中添加tomtom地图,这里包含了多种形式,诸如中文标记、英文标记、白天地图、晚上地图、卫星影像图,高山海拔地形图等。 直接复制下面的 vue+leaflet源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例…

【前端-VUE】Vue3组件组成部分及组件通信(详解)

一、父子间通信 1.父传子: 2.子传父: 3.什么是prop Prop定义:组件上注册的一些自定义属性 Prop作用:向子组件传递数据 特点: 可以传递任意数量的prop可以传递任意类型的prop 3.1 props校验 思考:组件的prop…

【脑电信号处理与特征提取】P5-彭薇薇:脑电信号的预处理及数据分析要点

彭薇薇:脑电信号的预处理及数据分析要点 脑电 脑电是神经活动的测量方法,在不同位置测量有不同的方法。比如大脑皮层表面测量的是ECoG,在头皮测量的是EEG。除了EEG是无损的,其他都是有损的。 脑电信号采集系统 下面是完整的…

seata Adjusted frame length exceeds 8388608: 539959368,nacos+mysql+seata部署

问题:docker 部署 seata 后出现异常 seata Adjusted frame length exceeds 8388608: 539959368 CSDN上找了一圈都解决不了。github又半天访问不上。后来终于访问上了,发现这是一个很离谱的问题。。。 原因:访问错了端口 seata默认分两个端口…

字符串中的单词反转【leetcode】

本题选自leetcode图解算法数据结构一书 你在与一位习惯从右往左阅读的朋友发消息,他发出的文字顺序都与正常相反但单词内容正确,为了和他顺利交流你决定写一个转换程序,把他所发的消息 message 转换为正常语序。 注意:输入字符串…

充电桩项目实战:搞定多数据源!

你好,我是田哥 最近,我在对充电桩项目进行微服务升级中,既然是项目升级,难免会遇到各种各样的问题。比如:分布式事务问题、多数据源问题、分布式锁问题等。 项目技术栈: SpringSpring BootSpring Cloud Ali…

Redis常见数据类型[上]

目录 前言: 基本全局命令 KEYS EXISTS DEL EXPIRE TTL TYPE 数据结构和内部编码 内部编码: 单线程架构 引出单线程模型: 为什么单线程还这么快? String字符串 字符串数据类型: 常见命令: S…

第十四篇【传奇开心果系列】BeeWare的Toga开发移动应用示例:Toga实现页面切换

传奇开心果系列博文 系列博文目录BeeWare的Toga开发移动应用示例系列博文目录前言一、Toga页面跳转和切换方式方法介绍二、使用TabView来实现页面切换三、使用页面堆栈管理器(Page Stack Manager)来实现页面切换四、使用网格布局(Grid Layout)和可见性控制来实现页面之间的…

防御保护--NAT策略

目录 NAT策略 NAT类型 server-map表 P2P --- peer to peer 网络类型 ​编辑 目标NAT--服务器映射 双向NAT ​编辑 多出口NAT NAT策略 静态NAT --- 一对一 动态NAT --- 多对多 NAPT --- 一对多的NAPT --- easy ip --- 多对多NAPT 服务器映射 源NAT--基于源IP地址进行转…

算法:分界线

一、算法描述 电视剧《分界线》里面有一个片段,男主为了向警察透露案件细节,且不暴露自己,于是将报刊上的字 剪切下来,剪拼成匿名信。 现在有一名举报人,希望借鉴这种手段,使用英文报刊完成举报操作。 但为…

如何从视频中提取高清图片?可以这样截取

如何从视频中提取高清图片?从视频中提取高清图片可以方便我们制作各种用途所需的素材,如海报、社交媒体配图等。此外,高清图片的细节和色彩也更丰富,可以更好地满足我们的视觉需求。从视频中提取高清图片是一项需要技巧的任务&…

leetcode 27.移除元素(python版)

需求 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度…

代码随想录 Leetcode617.合并二叉树

题目: 代码(首刷看解析 2024年1月31日): class Solution { public:TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {if (!root1) return root2;if (!root2) return root1;root1->val root2->val;root1->left mergeTree…

计算机网络_1.2因特网概述

1.2因特网概述 一、网络、互联网与因特网的区别与联系1、网络2、互联网3、因特网4、 互联网与因特网辨析 二、因特网介绍1、因特网发展的三个阶段2、因特网简介(1)因特网服务提供者(ISP)(2)因特网已经发展成…
最新文章