nodejs使用Express框架写后端接口的全过程

 更新时间:2022年05月01日 09:28:38   作者:劉溜溜  
最近学习了基于前后端分离的开发模式,我前端使用Vue框架,后端使用nodejs开发API接口,下面这篇文章主要给大家介绍了关于nodejs使用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用来约定请求体中保存的数据格式。

     content-type常见有三种取值:

image.png

  • 请求体:本次请求携带的参数。至于这些参数到了后端应该如何解析出来,由请求头中的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,它会自动创建uploads这个文件夹
  • upload.single只是处理了文件的上传。你仍可以通过req.body来获取其它参数

总结

到此这篇关于nodejs使用Express框架写后端接口的文章就介绍到这了,更多相关nodejs Express后端接口内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Node.js一行代码实现静态文件服务器的方法步骤

    Node.js一行代码实现静态文件服务器的方法步骤

    这篇文章主要介绍了Node.js一行代码实现静态文件服务器的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • Node.js 使用流实现读写同步边读边写功能

    Node.js 使用流实现读写同步边读边写功能

    本文通过代码给大家介绍了Node.js 使用流实现读写同步边读边写功能,非常不错,具有参考借鉴价值,需要的额朋友参考下吧
    2017-09-09
  • Egg框架的功能、原理,以及基本使用方法概述

    Egg框架的功能、原理,以及基本使用方法概述

    这篇文章主要介绍了Egg框架的功能、原理,以及基本使用方法,结合实例形式较为详细的分析了Egg框架的基本功能、原理、使用方法与相关注意事项,需要的朋友可以参考下
    2023-04-04
  • 在Node.js应用程序中处理大数的操作指南

    在Node.js应用程序中处理大数的操作指南

    在JavaScript生态系统中,你可以使用BigInt来处理大整数,但是,你也可以使用具有类似于BigInt功能的第三方库,本文将是使用BigInt和提供类似功能的流行库管理大数的完整指南,我们还将比较第三方库的用例、优势和劣势
    2023-06-06
  • node将geojson转shp返回给前端的实现方法

    node将geojson转shp返回给前端的实现方法

    这篇文章主要介绍了node将geojson转shp返回给前端的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • NodeJS落地WebSocket实践前端架构师破局技术

    NodeJS落地WebSocket实践前端架构师破局技术

    这篇文章主要为大家介绍了NodeJS落地WebSocket实践前端架构师破局技术,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Node.js中的异步生成器与异步迭代详解

    Node.js中的异步生成器与异步迭代详解

    这篇文章主要给大家介绍了关于Node.js中异步生成器与异步迭代的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 详解nodeJs文件系统(fs)与流(stream)

    详解nodeJs文件系统(fs)与流(stream)

    这篇文章主要介绍了详解nodeJs文件系统(fs)与流(stream),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • node.js中的fs.writeSync方法使用说明

    node.js中的fs.writeSync方法使用说明

    这篇文章主要介绍了node.js中的fs.writeSync方法使用说明,本文介绍了fs.writeSync的方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • Electron 调用命令行(cmd)

    Electron 调用命令行(cmd)

    这篇文章主要介绍了Electron 调用命令行(cmd),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09

最新评论