错误:WHERE 参数“id”在 Nodejs 上具有无效的“未定义”值

编程入门 行业动态 更新时间:2024-10-05 17:16:56

<a href=https://www.elefans.com/category/jswz/34/1771449.html style=错误:WHERE 参数“id”在 Nodejs 上具有无效的“未定义”值"/>

错误:WHERE 参数“id”在 Nodejs 上具有无效的“未定义”值

我试图创建一个带条纹的订阅计划,然后当我尝试查看代码是否适用于邮递员时,它给了我这个错误“错误:创建订阅失败:WHERE 参数“id”具有无效的“未定义”值”条带控制器代码上有错误,我已经在 console.log 中记录了“user_id”,它给了我 undefined

这是条纹控制器:

require('dotenv').config();
const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);
const { Suscribers, Users } = require('../db');

const createSubscription = async (subscriptionData) => {
  const { user_id, plan_id, payment_method, subscription_type } = subscriptionData;
  try {
    const user = await Users.findOne({ where: { id: user_id } });

    if (!user) {
      throw new Error(`User with ID ${user_id} not found`);
    }

    const customer = await stripe.customers.create({
      email: user.email,
      payment_method: payment_method,
      invoice_settings: {
        default_payment_method: payment_method,
      },
    });

    const subscription = await stripe.subscriptions.create({
      customer: customer.id,
      items: [{ plan: plan_id }],
      metadata: {
        subscription_type: subscription_type // agregar el tipo de suscripción como metadato
      },
      expand: ["latest_invoice.payment_intent"],
    });

    const paymentIntent = subscription.latest_invoice.payment_intent;
    const paymentIntentStatus = paymentIntent.status;
    const amount = subscription.plan.amount / 100;

    if (paymentIntentStatus === "succeeded") {
      const subscriber = await Suscribers.create({
        stripe_id: subscription.id,
        plan: subscription.plan.name.toLowerCase(),
        status: subscription.status,
        trial_start: subscription.trial_start,
        trial_end: subscription.trial_end,
        current_period_start: subscription.current_period_start,
        current_period_end: subscription.current_period_end,
        UserId: user.id
      });
      
      return { subscription, amount, subscriber };
    } else {
      throw new Error(`Payment status for subscription ${subscription.id} is ${paymentIntentStatus}`);
    }
  } catch (error) {
    console.error(error);
    throw new Error(`Failed to create subscription: ${error.message}`);
  }
};

module.exports = { createSubscription };

这是我在邮递员身上使用的路线:

require('dotenv').config(); // Importar configuración de variables de entorno con dotenv
const { Multimedia } = require('../db.js');
const authMiddleware = require('../controllers/authMiddleware.js');
const { Router } = require('express');
const router = Router();
const multer = require('multer');
const cloudinary = require('cloudinary').v2;
const { createSubscription } = require('../controllers/stripe.js');

// Configuración de Cloudinary
cloudinary.config({
cloud_name: process.env.CLOUDINARY_CLOUD_NAME,
api_key: process.env.CLOUDINARY_API_KEY,
api_secret: process.env.CLOUDINARY_API_SECRET,
});

// Configuración de Multer
const upload = multer({ dest: 'uploads/' });

router.post('/', authMiddleware, upload.single('file'), createSubscription, async (req, res) => {
try {
const { type } = req.body;
const file = req.file;

if (!file) {
  return res.status(400).json({ message: 'You did not send any file' });
}

if (type !== 'photo' && type !== 'video') {
  return res.status(400).json({ message: 'The file is not valid' });
}

const result = await cloudinary.uploader.upload(file.path, {
  resource_type: type === 'photo' ? 'image' : 'video',
});

const multimedia = await Multimedia.create({
  type: type,
  url: result.secure_url,
  user_id: req.user.id, // usar el ID del usuario autenticado
  subscription_type: req.subscription_type, // asignar el tipo de suscripción seleccionado por el usuario
});

res.json({
  message: 'You just uploaded a new file!',
  multimedia,
});
  } catch (error) {
    console.error(error);
    res.status(500).json({ message: `Server error: ${error.message}` });
  }
});


module.exports = router;


回答如下:

更多推荐

错误:WHERE 参数“id”在 Nodejs 上具有无效的“未定义”值

本文发布于:2024-05-30 08:11:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1770287.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:错误   参数   未定义   id   Nodejs

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!