欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

新手小白在node的post方法跟get方法接收参数踩的坑

程序员文章站 2022-01-01 12:24:26
新手小白在node的post方法跟get方法接收参数踩的坑在postman里测试方法都没有问题,但是前端post调用时后台就只接收到了请求,没有接收到参数。...

新手小白在node的post方法跟get方法接收参数踩的坑

文章目录

1.前言

最近自己开发了一个新项目,同时使用的技术也是之前没有用过的,属于小白一个,遇到问题找半天都没搞定,前端使用的是vue,后台使用的是node.js写的接口。

2.问题

后台写了两种接口,post方式跟get方式。
使用postman进行接口测试,post接口跟get接口都没有问题
在前端post调用时,

后端能接收到请求,但拿不到参数

get请求就可以调用成功
找半天不知道是哪里的问题。。。。

3.解决过程

在postman里能够调用成功,但是前端却不行,仔细观察控制台

新手小白在node的post方法跟get方法接收参数踩的坑
前端调用接口传递的参数是在Request Payload里的,跟postman的传参方式完全不同。

新手小白在node的post方法跟get方法接收参数踩的坑

在我的理解里,postman传参的本质还是get传参,因为还是写在url后面的。
所以如果你的后台写的接收参数的方法没有根据post跟get请求去写的话,就算在postman里成功了,当你真正从网页端发出请求时,就会有问题了。。。
因为我就是没有根据post跟get请求去写接收的参数。。。
我的后台写的接收参数都是req.query,但是req.query只是获取get方法传递的参数,而刚好postman发出的请求是直接写在url上的,所以后台使用req.query并没有问题。。。
没有仔细去理解,真是搞死小白。。。


补充一下:req.query跟req.body的区别:

  • 共同点:两者皆是属于node.js获取参数的方法
  • 区别点:
    • req.query用来获取get方法传递的参数
    • req.body用来获取post方法传递的参数,req.body需要借助第三方插件body-parser来配置

配置body-parser插件:

const express = require('express');
const bodyParser = require('body-parser');
const app = express();
//传递头信息application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({extended:false}))
//传递头信息
app.use(bodyParser.json());

所以,后台的接口要根据你的请求方式合理运用好req.query跟req.body就不会有问题了!!!
吃一堑长一智!!!!!

如果有写错或者不足的地方,还请在评论区指正!!我会及时修改!!!!!!

请尊重原创,如需转载,还请注明原作者,原文链接,谢谢啦!!!

本文地址:https://blog.csdn.net/caixuanji/article/details/109236597