如何用express写接口

什么是experss ?

express是一个基于node.js平台,极简高效开发的web开发框架

对于nodejs来说,express是一个第三方模块,支持丰富的api,强大而灵活的中间件特性

第一步 创建项目并初始化

创建一个新文件夹,在此目录下运行 npm init --yes命令来生成package.json文件

第二步 下载express包

本地安装 运行 npm i express

第三步 快速创建web服务器

//导入express
const express = require('express')
//调用express得到app
const app = express()

第四步 定义路由

// 定义路由
app.METHOD(PATH, HANDLER)

其中 :

app是express实例 ( const app = express() );

METHOD是一个http请求方法 全小写格式,例如:post,get,delete等

PATH是请求路径

HANDLER是当路由匹配到时需要执行的处理函数 (req,res) => {}

第五步 使用listen监听端口号 启动web服务

//监听端口号,启动 Web 服务
app.listen(3000, () => {
  console.log('服务器启动成功,请在http://localhost:3000中访问....')
})

示例:

express写get 接口

//导入
const express = require('express')
//调用
const app = express()
app.use(express.static('public'))
//get接口 
//    req => request:本次请求 
//    res => response : 本次响应 每一次受到浏览器的请求,就会执行一次回调
app.get('/getapi', (req, res) => {  
  // 直接返回对象
  console.log('接收到的参数是', req.query)
  //结束本次请求,设置响应体:返回给用户内容
  res.send({ message: "success" })
})
//监听端口号,启动 Web 服务
app.listen(3000, () => {
  console.log('服务器启动成功,请在http://localhost:3000中访问....')
})

express写post 接口

post接口与get请求不同在于 : 它的参数一般是通过请求体来传递的.content-type用来约定请求体中保存的数据格式

content-type常见有三种取值:

content-type的值

表示请求体的数据格式

application/x-www-form-urlencode

普通键值对象

application/json

json对象

multipart/form-data

上传文件

post接口-普通键值对

//导入
const express = require('express')
//调用
const app = express()
//使用中间件
app.use(express.static('public'))
app.use(express.urlencoded () )
//post接口 普通键值对
app.post('/post', (req, res) => {
  //可以通过req.body来获取post传递的键值对
  console.log('接收到的参数是', req.body)
  //结束本次请求,设置响应体:返回给用户内容
  res.send({ message: "success" })
})
//监听端口号,启动 Web 服务
app.listen(3000, () => {
  console.log('服务器启动成功,请在http://localhost:3000中访问....')
})

post接口-JSON格式

//导入
const express = require('express')
//调用
const app = express()
app.use(express.json())
//会自动加入req.body属性,这个属性中就包含了post请求所传入的参数
//用来处理JSON格式的数据
//post接口 JSON
app.post('/postJSON', (req, res) => {
  console.log('接收到的参数是', req.body)
  //结束本次请求,设置响应体:返回给用户内容
  res.send(req.body)
})
//监听端口号,启动 Web 服务
app.listen(3000, () => {
  console.log('服务器启动成功,请在http://localhost:3000中访问....')
})

post接口-form-data文件上传

如果post涉及文件上传操作,则需要额外使用multer第三方这个包(不属于express)来获取上传的信息

Multer 是一个 node.js 中间件,用于处理multipart/form-data类型的表单数据,它主要用于上传文件

//导入
const express = require('express')
const multer = require('multer')
//调用
const app = express()
const upload = multer({ dest: 'uploads/' }) 
//上传的文件会保存在这个目录下
//uploads表示一个目录名,也可以设置成其它
//如果当前目录下没有uploads,它会自动创建uploads这个文件夹
app.use(express.static('public'))
//post接口 文件上传
app.post('/publish', upload.single('cover'), (req, res) => {
  console.log('接收到的参数是', req.body)
  //结束本次请求,设置响应体:返回给用户内容
  res.send(req.body)
})
//监听端口号,启动 Web 服务
app.listen(3000, () => {
  console.log('服务器启动成功,请在http://localhost:3000中访问....')
})

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值