簡體   English   中英

Express.js 中的 req.query 未定義

[英]req.query in Express.js is undefined

我正在 MERN 應用程序中實現Stripe Checkout

客戶成功付款后,他/她將被重定向到結帳成功 URL,其中CheckoutSuccess頁面呈現在屏幕上。 此外,Stripe 在 URL 中發送session_id ,如下圖所示。 在此處輸入圖像描述

CheckoutSuccess頁面呈現時,我向/api/order/success發送一個POST請求。 在路由處理程序 function 中,我需要訪問 Stripe 發送的session-id (在 URL 中)。

我面臨的問題是當我嘗試 console.log req.query時,我得到一個空白的 object; 因此req.query.session_id返回undefined 在此處輸入圖像描述

為什么req.query是空白的 object?

代碼片段如下: orderRoutes.js

const express = require("express");
const asyncHandler = require("express-async-handler");
const dotenv = require("dotenv");
dotenv.config();

const stripe = require("stripe")(process.env.STRIPE_SECRET_KEY);

const router = express.Router();

router.post(
  "/success",
  asyncHandler(async (req, res) => {
    console.log(req.query);
    const session = await stripe.checkout.sessions.retrieve(
      req.query.session_id
    );
    const customer = await stripe.customers.retrieve(session.customer);
    res.send(customer);
  })
);

module.exports = router;

orderSlice.js

import { createSlice, createAsyncThunk } from "@reduxjs/toolkit";
import axios from "axios";

const initialState = {
  status: "idle",
  customer: null,
  error: null,
};

export const fetchCustomer = createAsyncThunk(
  "order/fetchCustomer",
  async (_, { rejectWithValue }) => {
    try {
      const { data } = await axios.post("/api/order/success");
      return data;
    } catch (err) {
      return rejectWithValue(err.response.data);
    }
  }
);

export const orderSlice = createSlice({
  name: "order",
  initialState,
  reducers: {},
  extraReducers: {
    [fetchCustomer.pending]: (state, action) => {
      state.status = "loading";
    },
    [fetchCustomer.fulfilled]: (state, action) => {
      state.status = "succeeded";
      state.customer = action.payload;
    },
    [fetchCustomer.rejected]: (state, action) => {
      state.status = "failed";
      state.error = action.payload.message;
    },
  },
});

export default orderSlice.reducer;

退出評論並進入答案

您的 fetch() 調用沒有傳遞任何數據或查詢參數,對嗎? 這似乎是這里的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM