Javascript 邮递http://localhost:3000/api/auth/register 404(未找到)

Javascript 邮递http://localhost:3000/api/auth/register 404(未找到),javascript,node.js,reactjs,express,Javascript,Node.js,Reactjs,Express,所以我已经为register auth创建了一个后端,在Postman工作正常的情况下,我也让用户访问mondoDb,但是当我尝试在localhost上创建实际的auth:3000/前端时。在控制台中,它给我错误信息。 xhr.js:177篇文章http://localhost:3000/api/auth/register 404未找到是否有人可以帮助我这种错误会出现在哪里 控制器 exports.register = async (req, res, next) => { co

所以我已经为register auth创建了一个后端,在Postman工作正常的情况下,我也让用户访问mondoDb,但是当我尝试在localhost上创建实际的auth:3000/前端时。在控制台中,它给我错误信息。 xhr.js:177篇文章http://localhost:3000/api/auth/register 404未找到是否有人可以帮助我这种错误会出现在哪里

控制器


exports.register = async (req, res, next) => {
    const { username, email, password } = req.body;
  
    try {
      const user = await User.create({
        username,
        email,
        password,
      });
  
      sendToken(user, 200, res);
    } catch (err) {
      next(err);
    }
  };
路线

const express=require('express');

const router = express.Router();
const {
       register,
       login,
       resetPassword,
       forgotPassword}= require('../controllers/auth')

router.route('/register').post(register);

router.route('/login').post(login);

router.route('/forgotpassword').post(forgotPassword);

router.route("/resetpassword/:resetToken").put(resetPassword);


module.exports= router;
登记册

import { useState } from "react";
import axios from "axios";
import { Link } from "react-router-dom";


const Register = ({ history }) => {
  const [username, setUsername] = useState("");
  const [email, setEmail] = useState("");
  const [password, setPassword] = useState("");
  const [confirmpassword, setConfirmPassword] = useState("");
  const [error, setError] = useState("");

  const registerHandler = async (e) => {
    e.preventDefault();

    const config = {
      header: {
        "Content-Type": "application/json",
      },
    };

    if (password !== confirmpassword) {
      setPassword("");
      setConfirmPassword("");
      setTimeout(() => {
        setError("");
      }, 5000);
      return setError("Passwords do not match");
    }

    try {
      const { data } = await axios.post(
        "/api/auth/register",
        {
          username,
          email,
          password,
        },
        config
      );

      localStorage.setItem("authToken", data.token);

      history.push("/");
    } catch (error) {
      setError(error.response.data.error);
      setTimeout(() => {
        setError("");
      }, 5000);
    }
  };

  return (
    <div className="register-screen">
      <form onSubmit={registerHandler} className="register-screen__form">
        <h3 className="register-screen__title">Register</h3>
        {error && <span className="error-message">{error}</span>}
        <div className="form-group">
          <label htmlFor="name">Username:</label>
          <input
            type="text"
            required
            id="name"
            placeholder="Enter username"
            value={username}
            onChange={(e) => setUsername(e.target.value)}
          />
        </div>
        <div className="form-group">
          <label htmlFor="email">Email:</label>
          <input
            type="email"
            required
            id="email"
            placeholder="Email address"
            value={email}
            onChange={(e) => setEmail(e.target.value)}
          />
        </div>
        <div className="form-group">
          <label htmlFor="password">Password:</label>
          <input
            type="password"
            required
            id="password"
            autoComplete="true"
            placeholder="Enter password"
            value={password}
            onChange={(e) => setPassword(e.target.value)}
          />
        </div>
        <div className="form-group">
          <label htmlFor="confirmpassword">Confirm Password:</label>
          <input
            type="password"
            required
            id="confirmpassword"
            autoComplete="true"
            placeholder="Confirm password"
            value={confirmpassword}
            onChange={(e) => setConfirmPassword(e.target.value)}
          />
        </div>
        <button type="submit" className="btn btn-primary">
          Register
        </button>

        <span className="register-screen__subtext">
          Already have an account? <Link to="/login">Login</Link>
        </span>
      </form>
    </div>
  );
};

export default Register;

你对CORS有问题。有一个方案可以解决这个问题

npm i cors
该软件包位于:

要使用它,只需导入它并按如下方式使用:

var cors = require('cors');

express.use(cors());

您还可以根据文档对其进行更多的自定义。

对此不太确定