#javascript #node.js #mongodb #express #stripe-payments
#javascript #node.js #mongodb #экспресс #stripe-платежи
Вопрос:
В настоящее время я пытаюсь создать новый продукт stripe с заданными деталями из данных формы, которые я буду вводить. До сих пор при создании продукта stripe он сообщал мне сведения о продукте в console.log (product) только в том случае, если я не использую раздел с комментариями, который я хотел бы иметь возможность использовать. Если я использую раздел с комментариями, то в нем будет указано, что product не определен, и я не могу передать неопределенный stripeID . Я также приму любые советы о коде в целом, поскольку я все еще учусь! Спасибо!
//Product Create
app.post('/products', async (req, res) => {
// Creates New Stripe Product
const product = await stripe.products.create({
name: req.body.productName,
images: [req.body.productImage]
/* },
(err, newProduct) => {
if (err) {
console.log(err);
} else {
console.log(`New Stripe Product Created`);
} */
});
console.log(product);
// Creates product with stripe Id and adds it to Mongo DB
Product.create({
productName: req.body.productName,
productDescription: req.body.productDescription,
price: req.body.productPrice,
img: req.body.productImage,
stripeProductId: product.id
},
(err, newProduct) => {
if (err) {
console.log('product not added to mongo');
console.log(err);
} else {
console.log('product created');
}
});
res.send('New/Post Create New Product');
});
Ответ №1:
Похоже, что вы используете 2 подхода, то await
есть, а также обратные вызовы, при вызове этих методов.
- Вот как
await
должен выглядеть подход:
const product = await stripe.products.create({
name: req.body.productName,
images: [req.body.productImage]
});
console.log("My product is" , product);
- И ваш подход к обратному вызову будет выглядеть иначе, вы будете регистрироваться
newProduct
внутри обратного вызова:
stripe.products.create({
name: req.body.productName,
images: [req.body.productImage]
},
(err, newProduct) => {
console.log("I am here");
if (err) {
console.log(err);
} else {
console.log('New Stripe Product Created', newProduct);
}
});