用express写get接口
express框架会自动收集从get类型的接口从url地址中传递的查询字符串参数,并自动保存在req对象的query中,
我们使用时直接获取即可.
const express = require('express')
const app = express()
app.get('/get',(req,res)=>{
console.log(req.query) //打印查看query的值
res.send({name:'aaa'})) //res.json({ name: 'aaa' })
})
//监听
app.listen(3000,()=>{
console.log('3000')
})
此时服务器已经完成,在浏览器输入地址即可链接服务器.
注意res.json是express提供的方法,与res.end()
用express写post接口--普通键值
也就是说,是content-type 为x-www-form-urlencoded时,表示上传的普通简单键值对.
const express = require('express'); //上面已经调用,下面几个接口将不在重复书写
const app = express();
//需要使用中间件urlencoded()
app.use(express.urlencoded())
app.post('/post',(req,res)=>{
//req中有body属性,可以直接将html中的属性直接返回到服务器的小黑窗
console.log('接收到的参数是',req.body) //注意这里只能用 ',' 如果使用加号就会拼接字符串,
//打印为{object,object}
res.json({message:'ok'}) //同理这里也可以使用res.send({message:'ok'})
})
用express写-json格式的参数
如果在使用post传递参数是,发现层层嵌套,则可以使用JSON格式上传
上面已经说明过,express中存在JSON属性(中间件),可以直接使用,如下
app.use(express.json()) //JSON中间件使用
app.post('/postjson',(req,res)={
console.log('接收到的参数是',req.body)
res.send('/postjson')
})
express写 post接口-form-data文件上传
这是涉及到文件上传操作,需要在服务器端额外使用第三方的包multer来获取上传的数据(不属于express,需要单独下载)
multer是node.js中的一个中间件,用于处理multipart/form-data类型的表单数据,主要用来上传文件,也可以上传头像.
//第一步,下载包 在cmd中输入 npm i multer
//包会自动安装到node-modules中,安装完成直接使用就好
//引入包
const multer = require(multer)
//配置包
const upload = multer({dest:'uploads/'}) //上传的文件会自动保存在这个目录下
//uploads是一个文件名 ,也可以用其他名字替换它,但是不太建议
//使用它,这个路由拥有第二参数, .uppload.single表示单文件上传 ,'cover'表示要上传文件,
//cover名字也可以自己定,但是要html中数据和服务器中的名字保持一致,例如换成img也是一样的
app.post('/post',upload.single('cover'),(req,res)=>{
console.log('接收到的参数是',req.body)
// req.body 记录了其它普通参数(非文件)的信息
// req.file 记录了文件上传的信息
res.send('hello world!')
})