基于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端口启动了');
})