Node.js Express后端接口开发:路由、传参与文件上传详解

作者:后端茶话时间:2026-10-25 09:49:54浏览:325

本文详解Node.js中使用Express框架开发后端接口的完整流程。涵盖路由基本概念、GET与POST请求的参数解析(包括表单、JSON及文件上传),并介绍利用multer中间件处理文件上传的具体实现,帮助开发者快速掌握Express核心功能。

在开发后端接口之前,需要明确接口的定义。在前端开发语境中通常称为“接口”,而在后端开发中则对应“路由”的概念,二者本质上指向同一机制。

路由与接口的对应关系

路由(Routing)由URL路径标识与特定的HTTP方法(如GET、POST等)共同构成,负责处理应用对客户端请求的响应逻辑。每个路由可配置一个或多个处理器函数,当请求匹配该路由时,相应的处理函数将被触发执行。

// 引入express
const express = require('express')
//创建express实例存入变量app ,调用express
const app = express()
// 定义路由
//METHOD:是一个http请求方法;PATH:请求路径;HANDLER:是当路由匹配到时需要执行的处理函数
app.METHOD(PATH, HANDLER)

接口数据传递机制

前端通过Ajax向服务器接口发送请求时,依据HTTP协议规范,请求结构包含三个核心部分:

  • 请求行:记录请求方式与目标地址,并可附加查询字符串格式的数据。
  • 请求头:包含多种元数据,其中content-type字段用于约定请求体(Body)中数据的格式。

content-type常见取值包括:

路由与接口的对应关系

  • 请求体:承载本次请求携带的具体参数。后端解析这些参数的具体方式,取决于请求头中content-type字段所指定的格式。

GET请求处理

express框架具备自动收集GET类型接口中URL查询字符串参数的功能,并将其封装至req对象的query属性中,开发者可直接访问该属性获取数据。

app.get('/get',(req,res) => {
  // 输出请求参数
  console.log(req.query)
  //结束本次响应并返回内容
  res.send('hello world!')
})

POST请求:普通键值对

当请求头中的content-type设置为x-www-form-urlencoded时,表示前端正在提交普通的简单键值对数据。

// 使用中间件获取普通键值对参数
app.use(express.urlencoded())
app.post('/add',(req,res) => {
  // 输出请求参数
  //app.use(....)之后,在res中就会多出一个属性res.body,里面存放着键值对参数
  console.log(req.body)
  //结束本次响应并返回内容
  res.send("hello world!")
})

POST请求:JSON格式

在POST请求中,若需传递结构复杂(如多级嵌套)的参数(例如表单数据),可采用JSON格式进行上传。

// 使用中间件获取JSON参数
app.use(express.json())
app.post('/post-json',(req,res) => {
  // 输出请求参数
  console.log(req.body)
  //结束本次响应并返回内容
  res.send("hello world!")
})

POST请求:Form-Data文件上传

若POST请求涉及文件上传,服务器端需额外引入第三方multer包(非Express内置模块)来处理上传信息。

// 引入包
const multer = require('multer')
// 配置 上传的文件会保存到unloads这个文件夹下
const upload = multer({dest:'unloads/'})
//upload.single表示单文件上传,cover表示本次上传的数据
app.post('/post-file',upload.single('cover'),(req,res) => {
  // req.file记录了上传文件的信息
  console.log(req.file)
  //结束本次响应并返回内容
  res.send({message:"ok"})
})
  • 若当前目录不存在uploads文件夹,系统会自动创建该目录。
  • upload.single仅负责处理文件上传逻辑。开发者仍可通过req.body属性获取其他非文件类的普通参数。

总结

至此,关于Node.js使用Express框架开发后端接口的内容介绍完毕。如需了解更多相关技术细节,建议查阅本站往期文章或继续浏览后续相关内容,感谢支持。

作者最新文章