express路由

本文详细介绍了Express框架中的路由机制,包括基本使用、适配所有HTTP方法、适配部分方法的两种方式,以及如何通过抽取路由模块进行代码组织。适用于希望深入理解Express路由处理的开发者。

Express路由

定义: 路由是指如何定义url以及如何响应客户端的请求

路由分发

1,基本使用

const express = require("express")
const app = express()
app.get('/list', (req, res)=>{
  res.send(req.method)
})
app.post('/list', (req, res)=>{
  res.send(req.method)
})
//监听端口
app.listen(8080,()=>{
  console.log('服务已启动...');
})

2,适配所有方法

const express = require("express")
const app = express()

app.all('/list',(req, res)=>{
  res.send(req.method)
})
//监听端口
app.listen(8080,()=>{
  console.log('服务已启动...');
})

3,适配部分方法
1.方式1

const express = require("express")
const app = express()
//适配get和post方法
app.get('/list',(req,res)=>{
    console.log(req.method)
}).post('/list',(req,res)=>{
    console.log(req.method)
})

app.listen(8080,()=>{
  console.log('服务已启动...');
})

2.方式2

const express = require("express")
const app = express()

function callback(req, res){
  res.send(req.method)
}
//链式路由句柄
app.route('/list') 
  .get(callback)
  .post(callback)

app.listen(8080,()=>{
  console.log('服务已启动...');
})

4,抽取路由模块

//app.js 
const express = require("express")
const app = express()
const router = require("./router.js")

app.use(router)


app.listen(8080,()=>{
  console.log('服务已启动...');
})
//router.js 路由模块
const express = require('express')
const router = express.Router()

router.get('/list', (req, res)=>{
  res.send(req.method)
})
router.post('/list', (req, res)=>{
  res.send(req.method)
})

module.exports  = router
### 如何配置 Express 路由以实现 CORS 允许跨域访问 为了使 Express 应用程序能够处理来自不同源的请求,可以使用 `cors` 中间件来简化 CORS 的配置。以下是具体做法: #### 安装并引入 cors 中间件 首先需安装 `cors` 模块,在项目根目录下执行命令 `npm install cors` 。之后可以在应用中通过如下方式加载此模块[^1]: ```javascript const express = require('express'); const cors = require('cors'); const app = express(); ``` #### 设置全局 CORS 支持 为了让所有的 HTTP 请求都能被正确响应而不受同源政策的影响,可以直接调用 `app.use()` 方法注册 `cors()` 函数作为全局中间件: ```javascript // 使用 cors 中间件 app.use(cors()); ``` 这行代码使得整个应用程序对于任何来源都开放了 CORS 访问权限。 #### 针对特定路径启用 CORS 如果只想让某些 API 接口支持跨域,则可以通过为指定路由添加 `cors()` 来达成目的。例如只允许 `/api/data` 这条 URL 下的所有操作不受限于同源限制: ```javascript // 对某个特定路径开启 CORS app.use('/api/data', cors()); // 或者更精确地控制 OPTIONS 请求预检机制 app.options('/api/data', cors()); // 处理预飞行请求 ``` #### 自定义 CORS 行为 当需要更加精细地调整 CORS 策略时,比如限定可信任域名列表、允许哪些 HTTP 动作以及自定义头部字段等,可通过传递选项对象给 `cors()` 实现定制化需求[^2] : ```javascript var allowCrossDomain = function(req, res, next) { res.set({ "Access-Control-Allow-Origin": "*", "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE", "Access-Control-Allow-Headers": "Content-Type" }); if ('OPTIONS' === req.method) { return res.sendStatus(204); } next(); }; app.use('/', allowCrossDomain); // 或者直接传入配置项到 cors() app.use(cors({ origin: ['http://example.com'], methods: ['GET','POST'], allowedHeaders: ['Content-Type'] })); ``` 以上就是关于如何利用 Express 和 Cors 解决跨域问题的一些基本介绍和实践案例[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值