本周学习总结

1.axios交互过程中报错Failed to load resource: the server responded with a status of
500 (Bad Request)

在解决这个问题的过程中检查了好几遍代码,也做了不少改动,但是仍然报错,而且是404和500轮流报错,刚开始以为是不是接口出问题了,但是在swagger里试了试接口,发现接口可以使用,所以应该就是在使用url的时候路径引错了。这次我们是在router里用了home和admin两个文件,home里写前台的router代码,adimn里写后台的router代码,然后再在两个文件里细分,把不同的代码根据功能以及对应的HTML文件的不同写进不同的子文件里,所以导致路径比较复杂,就以我写的register的代码为例,我把它的router文件写进了home的子文件register.js里,在register.js里写的时候,url仍然使用接口的url就可以,就像

const { Router } = require('express')
const express = require('express')
//路由容器
const register = express.Router()
const axios = require('axios')
register.get('/email/sendEmail', (req, res) => {
    let {email}=req.query
    axios({
        method:'post',
        url : '/email/sendEmail',
        params:{
            email:email
        }
    }).then(function(data){
        res.status(200).json({
            data:data.data,
            code:0
        })
    }).catch(function(err){
        res.status(500).json({
            msg:err
        })
    })
 })

在这里的url仍为/email/sendEmail,但是在HTML直接对应的js里,url就要写成/home/register/email/sendEmail,因为此处是引用的是router里面的接口,再由router里的接口引用后端给的接口,所以当文件里的js使用接口的时候,url需要加上前面的/home/register

2.Cannot destructure property 'mail' of 'req.query.mail' as it is undefined.

这是我在写一个post请求的时候遇到的问题,当时很纳闷,感觉代码没什么错误,但是还是报错了,而且又是这种我看不懂的错误,当我照着上面的代码再对照着敲一遍,格式上和那个基本上一样的时候,仍然会报错,在我多次使用了console.log打印相关信息后才发现,req.query里面什么也没有,在网上查阅相关资料,明白了req.query和req.body的区别,前者用于获取get方法传递的参数,后者用于获取post方法传递的参数,因为我这次用的是post方法,所以应当使用后者,即req.body.mail。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值