Javascript 接收承诺{<;挂起>;}错误节点
我已经用nodejs从头开始创建了一个电子商务应用程序,并用stripe实现了支付。。。我有下面的代码,但它没有显示条带签出页面,并且正在控制台中记录Promise{pending}。以前有人犯过这个错误吗Javascript 接收承诺{<;挂起>;}错误节点,javascript,node.js,e-commerce,payment,Javascript,Node.js,E Commerce,Payment,我已经用nodejs从头开始创建了一个电子商务应用程序,并用stripe实现了支付。。。我有下面的代码,但它没有显示条带签出页面,并且正在控制台中记录Promise{pending}。以前有人犯过这个错误吗 app.post('/create-checkout-session', (req, res) => { var amount = stringify(req.body) console.log(req.body.sessionID) var userId = req.
app.post('/create-checkout-session', (req, res) => {
var amount = stringify(req.body)
console.log(req.body.sessionID)
var userId = req.body.sessionID
console.log("email: " + req.body.customer_email)
var email = req.body.customer_email;
var deliveryTotal = req.body.totalWithDelivery;
var totalVal = amount.split("=");
var totalPrice = parseFloat(totalVal[1]);
//console.log("TOTAL PRICE: " + totalPrice);
var finalPrice = parseFloat(Math.round(totalPrice * 100) / 100);
var finalTotal = parseFloat(Math.round(totalPrice * 100) / 100) + parseFloat(Math.round(deliveryTotal));
console.log("final total: " + finalTotal);
var itemName = ""
var itemPrice = ""
var totalNewPriceTest = ""
//query to database
var productsStripe = "select * from " + userId
console.log(userId)
console.log("query to db for displaying cart on stripe page")
ibmdb.open("DATABASE=BLUDB;HOSTNAME=;PORT=50000;PROTOCOL=TCPIP;UID="";PWD="";", function (err,conn) {
if (err) return console.log(err);
conn.query(productsStripe, function (err, rows) {
if (err) {
console.log(err)
}
console.log(rows)
for(var i = 0; i < rows.length; i++) {
itemName = rows[i]['ITEM']
itemPrice = rows[i]['PRICE']
totalNewPriceTest = parseFloat(rows[i]['PRICE'])
console.log("item name : " + itemName + " " + itemPrice )
totalNewPriceTest = parseFloat(totalNewPriceTest);
console.log("final overall prcie: " + (totalNewPriceTest))
}
console.log("inside productsStripe function.")
console.log("overall prcie: " + totalNewPriceTest)
totalNewPriceTest = parseFloat(totalNewPriceTest)
var grandTotal = totalNewPriceTest;
var finalGrandTotal = parseFloat(grandTotal)
console.log(parseFloat(finalGrandTotal))
// continue executing here
//stripe
const session = stripe.checkout.sessions.create({
shipping_address_collection: {
allowed_countries: ['CA'],
},
payment_method_types: ['card'],
line_items: [
{
price_data: {
currency: 'CAD',
product_data: {
name: itemName,
},
unit_amount: finalGrandTotal,
//finalTotal * 100
},
quantity: 1,
},
],
mode: 'payment',
success_url: 'localhost:1001/successPg',
cancel_url: 'localhost:1001/catalogue',
customer_email: email,
});
console.log(session)
res.json({ id: session.id });
//console.log("customer id" + customer.id)
console.log("totalNewPriceTest " + totalNewPriceTest)
})
})
});
app.post('/create checkout session',(req,res)=>{
var金额=字符串化(请求正文)
console.log(请求主体sessionID)
var userId=req.body.sessionID
控制台日志(“电子邮件:+req.body.customer\U电子邮件”)
var email=req.body.customer\u email;
var deliveryTotal=req.body.totalWithDelivery;
var totalVal=金额。拆分(“”);
var totalPrice=parseFloat(totalVal[1]);
//控制台日志(“总价:+totalPrice”);
var finalPrice=parseFloat(数学四舍五入(总价*100)/100);
var finalTotal=parseFloat(数学轮(totalPrice*100)/100)+parseFloat(数学轮(deliveryTotal));
控制台日志(“最终总计:+finalTotal”);
var itemName=“”
var itemPrice=“”
var totalNewPriceTest=“”
//对数据库的查询
var productsStripe=“选择*自”+用户ID
console.log(用户ID)
log(“查询db以在条带页面上显示购物车”)
打开(“数据库=BLUDB;主机名=;端口=50000;协议=TCPIP;UID=”“;PWD=”“;”,函数(err,conn){
if(err)返回console.log(err);
conn.query(ProductsTripe,函数(err,行){
如果(错误){
console.log(错误)
}
console.log(行)
对于(变量i=0;i
如果有人对可能发生的事情有任何线索,请让我知道我能做些什么来解决这个问题。我知道这可能与异步有关,nodejs有一种有趣的方式来实现异步功能。错误是什么<代码>承诺不是错误,这是承诺的状态-哪行代码输出此错误-我预测它是
console.log(session)
-因为最有可能的是stripe.checkout.sessions.create
返回一个简单的修复。。。添加async
,如图所示-conn.query(productsStripe,异步函数(err,rows){
-然后const session=wait stripe.checkout.sessions.create({
)就行了,谢谢!