自己当接口的主人,再也不求人去写接口: 利用express书写接口(get/post各种数据类型)

168 阅读1分钟

基于express下载完毕并且在项目中初始化完成后,我们可以使用express来书写后端的接口

1.在js文件中引入包,将public进行静态资源管理,为以后post接口引入包

 // 实现get接口
const express = require('express')
const app = express();

app.use(express.static('public'))
// 引入bodyParse包
const bodyParser = require('body-parser')
// 使用包. 则在后续的post请求中
// 会自动加入req.body属性,这个属性中就包含了post请求所传入的参数
// 处理普通的键值对格式
// Content-Type: application/x-www-form-urlencoded
app.use(express.urlencoded())

// 处理JSON格式
// Content-Type: application/json;
app.use(express.json())

// 引入multer包
const multer = require('multer');

// 配置一下multer
// 如果本次post请求涉及文件上传,则上传到uploads这个文件夹下
// Content-Type: multipart/form-data;
var upload = multer({ dest: 'uploads/'})

2.书写get接口

// 实现接口1: get类型接口
// 返回所传入的参数,并附上上时间戳
  app.get('/getapi',(req,res)=>{
// 通过 req.query快速获取传入的参数
  console.log(req.query);
  let obj = req.query
  
  obj._t = Date.now(); 
  res.json( obj )
})

3.书写post普通JSON键值对类型接口

app.post('/post',(req,res)=>{
// 希望在后端收到post传参
 console.log(req.body);

 let obj = req.body
 obj._t = Date.now();
 
 res.json(obj)
})

4.书写post用于JSON数据

// 实现接口3:用来JSON格式的数据
/ Content-Type: application/json;
pp.post('/postJSON',(req,res)=>{
// 希望在后端收到post传参
console.log(req.body);
// res.send('/postJSON')
 res.json( req.body )
})

5.书写post用于formdata数据

// 实现接口4:接口formDate
app.post('/publish',upload.single('cover'),(req,res)=>{
    console.log('publish...')
    //upload.single('cover')
    // 这里的cover就是在页面中表单元素中的name
    // <input type="file" name="cover" />
    // 把要上传文件放在指定的目录
    console.log(req.file);
    // 其它参数,还是在req.body中找
    console.log(req.body);

   res.json({code:200,msg:'上传成功',info:req.file.path})
})

6.书写端口号启动服务

 app.listen(3000,()=>{
 console.log('express应用在3000端口启动了'); 
})