首页 > 其他分享 >如何使用Express.js创建一个基本的路由?

如何使用Express.js创建一个基本的路由?

时间:2024-07-01 16:00:03浏览次数:18  
标签:req res app Express js 路由

在现代Web开发或面试过程中,Express.js成为了必不可少的一部分。Express.js是Node.js的一个非常受欢迎和强大的框架,而创建路由是这个框架的核心功能之一。在这篇文章中,我们将详细介绍如何使用Express.js创建一个基本的路由,并附上示例代码帮助你理解。

什么是路由?

路由决定了应用程序如何响应客户端对特定端点的请求。在Express.js中,路由方法提供了HTTP动词并使用URL路径模式来匹配请求。例如,当用户访问http://yourdomain.com/home时,将有一个路由来处理这个请求。

搭建Express.js项目

首先,让我们来创建一个基本的Express.js应用程序。如果还没有Node.js, 你需要先下载并安装,随后才能使用NPM来管理项目的依赖包。

以下是创建一个Express.js项目的步骤:

  1. 初始化项目

    进入终端(命令提示符),创建一个新目录并进入该目录,然后运行以下命令来初始化项目:

    mkdir my-express-app
    cd my-express-app
    npm init -y
    
  2. 安装Express.js

    接下来,安装Express.js:

    npm install express
    
  3. 创建应用入口文件

    使用你喜欢的文本编辑器创建一个名为app.js的文件并开始编写我们的Express.js应用。

创建基本路由

现在,我们已经搭建好了Express.js环境,接下来我们要生成一些基本的路由。这些路由将决定用户请求将被如何处理。

步骤1:引入Express.js

首先在app.js文件内引入Express.js:

const express = require('express');
const app = express();
const port = 3000;

步骤2:创建基本的GET路由

接下来,我们创建一个根路由/,当访问这个路径时,服务器将返回一个响应:

app.get('/', (req, res) => {
  res.send('Hello, World!');
});

步骤3:创建其他HTTP动词的路由

Express.js不仅支持GET请求,还支持POST、PUT、DELETE等HTTP动词。以下是添加不同动词路由的示例:

// GET request
app.get('/about', (req, res) => {
  res.send('This is the about page.');
});

// POST request
app.post('/submit-form', (req, res) => {
  res.send('Form has been submitted!');
});

// PUT request
app.put('/update-data', (req, res) => {
  res.send('Data has been updated!');
});

// DELETE request
app.delete('/delete-item', (req, res) => {
  res.send('Item has been deleted!');
});

步骤4:参数化路由

有时我们需要把一些参数传递到路由中。我们可以通过在URL中指定动态路由参数来实现:

app.get('/user/:id', (req, res) => {
  res.send(`User ID is ${req.params.id}`);
});

在上面的代码里,当用户访问/user/123,服务器将响应User ID is 123。类似的,我们还可以在POST等其他动词中使用动态参数。

步骤5:启动服务器

最后,我们需要在指定端口上启动服务器:

app.listen(port, () => {
  console.log(`Server is running at http://localhost:${port}`);
});

完整代码示例

将所有代码整合到一起,你应该有一个完整的app.js文件,如下所示:

const express = require('express');
const app = express();
const port = 3000;

// Root Route
app.get('/', (req, res) => {
  res.send('Hello, World!');
});

// About Route
app.get('/about', (req, res) => {
  res.send('This is the about page.');
});

// Submit Form Route
app.post('/submit-form', (req, res) => {
  res.send('Form has been submitted!');
});

// Update Data Route
app.put('/update-data', (req, res) => {
  res.send('Data has been updated!');
});

// Delete Item Route
app.delete('/delete-item', (req, res) => {
  res.send('Item has been deleted!');
});

// User Route with Parameters
app.get('/user/:id', (req, res) => {
  res.send(`User ID is ${req.params.id}`);
});

// Start Server
app.listen(port, () => {
  console.log(`Server is running at http://localhost:${port}`);
});

总结

以上就是如何使用Express.js创建基本路由的全部内容。你可以进一步按照你的需求扩展这些路由,处理更多的情况与逻辑。掌握Express.js的路由机制对于任何一个前端开发者来说都是必备技能,不仅能帮助你通过面试,还能在实际项目中大显身手。


最后问候亲爱的朋友们,并邀请你们阅读我的全新著作

在这里插入图片描述

标签:req,res,app,Express,js,路由
From: https://blog.csdn.net/yuanlong12178/article/details/140103486

相关文章

  • K8S学习教程(一):使用PetaExpress云服务器安装Minikube 集群
    什么是MinikubeMinikube是一款工具,主要用于在本地运行Kubernetes集群。Kubernetes开源的平台,用于自动化容器化应用的部署、扩展和管理,而Minikube使得开发人员能够在本地机器上轻松创建一个单节点的Kubernetes集群,从而方便开发、测试和学习Kubernetes。我们看下......
  • js前端通过xlsx 实现带单元格合并的excel导出
    tableToExcelWithMerge(rows){constThis=this;letjsonData=This.formatExcelData(rows);console.log("dwadwa",jsonData)//创建工作簿constwb=XLSX.utils.book_new();//转换数据为工作表constws=XLSX.utils.aoa......
  • html+css+js文章模板
    图片  源代码在图片后面,点赞加关注,谢谢......
  • NextJS 开发指南
    0x01概述(1)基本信息NextJS官网:https://nextjs.org/NextJS是一个轻量级的React服务端渲染(SSR)应用框架TheReactFrameworkforProductionAfull-stackframeworkforReactJSNextJS解决了常见问题使构建React应用更加容易NextJS基于React框架:React18(2)主......
  • QT 读取Json 配置文件
    {QStringProjectPath="";QStringConfigPath=".json";constchar*PathEnvVar=getenv("");if(PathEnvVar!=nullptr){ProjectPath=PathEnvVar;ConfigPath=ProjectPath+"/.json&quo......
  • HTML5+CSS3+JS小实例:图片九宫格
    实例:图片九宫格技术栈:HTML+CSS+JS效果:源码:【HTML】<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0">......
  • ensp中静态路由配置
    静态路由配置静态路由是一种网络路由的配置方法,它是由网络管理员手动配置的,不依赖于动态路由协议。静态路由表中包含了网络的目标地址和下一跳地址的对应关系,它告诉路由器如何将数据包从一个网络发送到另一个网络。在静态路由中,网络管理员需要手动配置每个网络的目标地址......
  • vue前端项目补充API设计、安全性、状态管理、前端路由等功能
    为了完善前端项目,我们需要考虑API设计、安全性、状态管理和前端路由等方面。以下是如何集成这些功能的基本步骤。API设计定义API接口:根据后端服务提供的API,在前端项目中定义相应的接口函数。使用axios或其他HTTP客户端库来发送请求。封装API请求:创建一个服务模块......
  • 动态路由RIP协议
    一、拓扑二、 配置路由器端口IP地址R1R2  三.配置步骤1.Router(config)#routerrip       !启用RIP动态路由协议2.Router(config-router)#version{1|2}       !指定RIP协议的版本,不写默认版本1(一般都默认)3.Router(config-router......
  • protobufjs解析proto消息出错RangeError: index out of range: 2499 + 10 > 2499解决办
    使用websocket通讯传输protobuf消息的时候,decode的时候出错了:RangeError:indexoutofrange:2499+10>2499Error:invalidwiretype4atoffset1986出现这种错误的时候,99%是因为proto里面的消息类型和服务端发送的消息类型不一致导致的。解决这个问题的办法有......