【问题标题】:axios request not going through to backendaxios 请求未通过后端
【发布时间】:2021-05-14 21:18:30
【问题描述】:

我正在努力让这个 axios 调用正常工作。它在密码重置功能中,它调用一个发送到后端的 axios 请求,但它只是出现错误而不是执行路由器路由中的代码。

我在这里调用这个块中的请求。

前端:

  async componentDidMount() {
const {
  match: {
    params: { token },
  },
} = this.props;
try {
  const response = await axios.get('http://localhost:5000/api/users/reset', {
    params: {
      resetPasswordToken: token,
    },
  });
  console.log(response)
  if (response.data.message === 'password reset link a-ok') {
    this.setState({
      username: response.data.username,
      updated: false,
      isLoading: false,
      error: false,
    });
  }
} catch (error) {
  console.log(error.response.data);
  this.setState({
    updated: false,
    isLoading: false,
    error: true,
  });
}
}

它正在获取正确的令牌和所有内容,但是 http://localhost:5000/api/users/reset 应该指向下面代码中的 /reset 路由,并且从未到达。

const express = require("express");
const router = express.Router();
const bcrypt = require("bcryptjs");
const jwt = require("jsonwebtoken");
const keys = require("../../config/keys");

const validateRegisterInput = require("../../validation/register");
const validateLoginInput = require("../../validation/login");
const nodemailer = require('nodemailer');
const crypto = require('crypto');

require('dotenv').config();

const User = require("../../models/User");

router.route('/reset').get((req, res, next) => {
  User.find({
    where: {resetPasswordToken: req.query.resetPasswordToken,
    resetPasswordExpires: {
      $gt: Date.now(),
    },
  },
}).then(user => {
  if(user == null) {
    console.log('password reset link is invalid or has expired');
    res.json('password reset link is invalid or has expired');
  }else{
    res.status(200).send({
      username: user.username,
      message: 'password reset link a-ok',
        });
      }
    });
  });

module.exports = router;

【问题讨论】:

  • 你能添加完整的路由代码和它给出的错误吗?
  • 哦,哎呀!我想这个错误会有所帮助哈哈。错误:CastError: Cast to ObjectId failed for value "reset" at path "_id" for model "users" 并且完整的路由基本上就在那里。 users.js 文件中还有许多其他路由,其中​​包含所有路由,但它们都是单独工作的,只是这一个不会出于任何原因。
  • 唯一不是另一条路线的是顶部的东西。我会将其添加到原始问题中。谢谢@TamasSzoke

标签: axios react-router


【解决方案1】:

实际上@TamasSzoke 你让我回答了我自己的问题,所以我谢谢你!我有另一条路线,它只是 /:id,这就是它试图在那里验证的。

只需要换一个就好了。

谢谢!!!

【讨论】:

  • 很高兴我的问题有所帮助,您可以将此答案标记为已接受。
猜你喜欢
  • 2017-07-05
  • 2021-11-30
  • 1970-01-01
  • 1970-01-01
  • 2019-11-06
  • 2018-04-25
  • 2020-02-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多