Вызов API возвращает ошибку превышения максимального размера стека вызовов

Я пытаюсь создать сервис онлайн-платежей с помощью Stripe, и я хотел бы создать конечную точку API с использованием Express и Node.js, чтобы мой интерфейсный сервер мог вызывать этот API, который затем будет обрабатывать расходы для меня в бэкэнде. Следующий фрагмент - это API POST для того, что у меня есть:

const express = require('express');
const router = express.Router();
const stripe = require('stripe')('sk_test_mystripescretkey');

router.post('/token', (req, res) => {
  stripe.tokens.create({
    card: req,
  }).then(token => res.send(token))
    .catch(err => res.status(400).send(err.message));
});
module.exports = router;

Однако, когда я пытаюсь протестировать эту конечную точку, вызывая ее с помощью Postman, я получаю Maximum call stack size exceeded ошибку. Сама по себе функция полосы работает нормально, поэтому я предполагаю, что ошибка возникает из-за попытки вызвать функцию полосы внутри конечной точки API? Может ли кто-нибудь сообщить мне, почему возникает эта ошибка, и, возможно, предложить исправление? Спасибо.


person Community    schedule 06.04.2020    source источник
comment
Ваш код, вероятно, где-то рекурсивно повторяется, и вы получаете переполнение стека в браузере. Никакой каламбур.   -  person L0uis    schedule 06.04.2020
comment
@ L0uis Я предполагаю, что это, вероятно, переполнение стека, но я понятия не имею, где может быть рекурсия. Сама по себе функция полосы определенно не является рекурсивной, и я просто вызываю конечную точку из Postman.   -  person    schedule 06.04.2020


Ответы (1)


Вы отправляете весь req в качестве аргумента в stripe.tokens.create(); вместо этого вы, вероятно, захотите просто отправить req.body (или тело, проанализированное каким-либо образом, в зависимости от того, какие данные вы здесь размещаете).

Также вам не следует создавать токены на стороне сервера, как это - вы должны использовать Stripe.js для этого: https://stripe.com/docs/js

person floatingLomas    schedule 06.04.2020
comment
Спасибо, вы знаете, как интегрировать объект Stripe? Я попытался включить теги сценария Strip.js, но не могу получить доступ к объекту Stripe в моем классе компонентов. Я работаю в Angular. - person ; 06.04.2020
comment
Официального руководства по Angular нет, поэтому я бы рекомендовал просто поискать его в Google; что-то вроде этого может сработать: devdungeon.com/content/using-stripejs-elements- угловой - person floatingLomas; 07.04.2020