繁体   English   中英

GET http://localhost:3000/api/v1/order/61e45e625d8c385a01f04a5f 500(内部服务器错误)

[英]GET http://localhost:3000/api/v1/order/61e45e625d8c385a01f04a5f 500 (Internal Server Error)

OrderDetails 组件:-

import { getOrderDetails, clearErrors } from "../../actions/orderAction";
import Loader from "../layout/Loader/loader";
import { toast } from "react-toastify";
const OrderDetails = ({ match }) => {
  const { order, error, loading } = useSelector((state) => state.orderDetails);
    const dispatch = useDispatch();
    const params = useParams()
    console.log(params)
  useEffect(() => {
    if (error) {
        console.log({ error });
      toast.error(error);
      dispatch(clearErrors());
    }
    dispatch(getOrderDetails(params.id));
  }, [dispatch, error, params.id]);
  return (
    <Fragment>
      {loading ? (
        <Loader />
      ) : (
        <Fragment>
          <MetaData title="Order Details" />
          <div className="orderDetailsPage">
            <div className="orderDetailsContainer">
              <Typography component="h1">
                Order #{order && order._id}
              </Typography>
            </div>
          </div>
        </Fragment>
      )}
    </Fragment>
  );
};

这是用户操作部分的代码:-

    export const getOrderDetails = (id) => async (dispatch) => {
    try {
        dispatch({ type: ORDER_DETAILS_REQUEST })
        
        const { data } = await axios.get(`/api/v1/order/${id}`)
        console.log(data)
        dispatch({ type: ORDER_DETAILS_SUCCESS, payload: data.order })
    } catch (error) {
        console.error({error})
        dispatch({
            type: ORDER_DETAILS_FAIL,
            payload: error.response.data.message || error.message,
        })
    }
}

当我尝试运行代码时,这是我得到的错误:- http://localhost:3000/api/v1/order/61e45e625d8c385a01f04a5f 500(内部服务器错误)

这是 API 部分:-

  • 路线:-

    router.route("/order/:id").get(isAuthenticatedUser, authorizeRoles("admin"), getSingleOrder)

  • Function 被调用(getSingleOrder)

export.getSingleOrder = catchAsyncError(async (req, res, next) => { const order = await Order.findById(req.params.id).populate( "user", "name email" ) if (,order) { return next(new ErrorHander("Order not found with this id". 404)) } res.status(200):json({ success, true, order, }) })这是我在前端控制台中遇到的错误:输入图片说明在这里

这是它被移动到的路线:-在此处输入图像描述我猜这是错误。

这是后端错误

首先,这是后端问题,而不是前端问题。

如果您的 API 没有产生数据,那么 API 就是问题所在。

因此,鉴于您提供的后端响应,很明显您尚未注册“用户”model。 当我说已注册时,我的意思是您可能没有导出 model 或在路由/控制器中错误地“要求”它。

正如@Bjorn 在评论中非常恰当地指出的那样,您可以按照这篇文章来修复和更好地理解问题 - 如何在 mongoose 中注册和调用架构

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM