已被阅读 1581 次 | 文章分类:nodejs | 2018-11-28 22:31
在使用开发当中get主要有三种请求方式,那么对应的后端接口该如何相对应的获取到请求参数呢,下面简单介绍
一:get请求格式
get请求主要是对请求url的格式规定,无非就三种,下面一一简单介绍一下 本节使用demo
// 引入express模块 commonjs规范引入
const express = require('express')
// 实例化 express
const app = express()
// 定义要返回的值,后面可以从数据库查询返回
let json = {
code: 200,
msg: '请求成功',
data:[
{
Id: '1',
name: 'xiaobai',
blog: 'http://www.xiaobaigis.com'
},
{
Id: '2',
name: 'yangsir',
blog: 'http://xiaobaigis.com'
}
]
}
// 定义接口类型以及地址
app.get("/api/getdata", function (req, res) {
res.send(json)
})
// 启动服务器
app.listen(5438, function () {
console.log("启动服务 http://localhost:5438 ")
})
1. 格式一: 无条件请求
请求方式: http://localhost:5438/api/getdata
后台对应格式:
app.get("/api/getdata", function (req, res) {
res.send(json)
})
2. 格式二: url地址后面带?
请求方式: http://localhost:5438/api/getdata?id=1
后台对应格式:
app.get("/api/getdata", function (req, res) {
let param=req.query, // ?后面的参数值需要query属性获取
dataArr=json.data;
let mapArr=dataArr.filter((item)=>{
if(item.Id==param.id){
return item;
}
})
res.send(mapArr[0]) // 返回id为1的对象
})
3. 请求格式三: /id值
请求方式: http://localhost:5438/api/getdata/1
后台对应格式:
app.get("/api/getdata/:id", function (req, res) { // :id的格式
let param=req.params, // /后面的参数值需要params属性获取
dataArr=json.data;
let mapArr=dataArr.filter((item)=>{
if(item.Id==param.id){
return item;
}
})
res.send(mapArr[0]) // 返回id为1的对象
})
二:post请求格式
post与get请求主要的区别是get请求参数通过url直接传值请求;post需要通过请求主体 post方式请求的话,不能直接通过req.query或者req.params方式获取参数值了,因为req对象没有请求主体信息;这时候继续安装一个包,实现流程如下
1. 安装 body-parser
npm install --save body-parser
2. 引入该包并注册方可使用,实现流程和上面一样,引入mysql模块,连接数据库,查询数据,再返回数据;
// 以能够通过bodyPaser获取req.body
const bodyParser=require("body-parser");
app.use(bodyParser.json())
3. 可以通过该包获取值 后台接口通过如下方式获取值
请求方式: 这里以vue的axios接口请求
Axios.post('http://localhost:5000/api/upload',
{
"id":1
}).then(function(res){
alert('success')
})
后台对应格式:
app.post("/api/getdata", function (req, res) {
let param=req.body,
dataArr=json.data;
let mapArr=dataArr.filter((item)=>{
if(item.Id==param.id){
return item;
}
})
res.send(mapArr[0])
})
可以通过fiddler测试,测试注意下面框选:请求头指定参数格式为json字符串;请求主体必须是字符串,对象会报错
4. 从数据库读取方式一样
app.post('/api/getuser',function (req, res,next) {
let username=req.body.username;
connection.query(`select * from user where username = '${username}'`,function(err,results){
if (err) {throw err;}
else {
res.send(results);
}
})
});
QQ:3410192267 | 技术支持 微信:popstarqqsmall
Copyright ©2017 xiaobaigis.com . 版权所有 鲁ICP备17027716号