Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 接收承诺{<;挂起>;}错误节点_Javascript_Node.js_E Commerce_Payment - Fatal编程技术网

Javascript 接收承诺{<;挂起>;}错误节点

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.

我已经用nodejs从头开始创建了一个电子商务应用程序,并用stripe实现了支付。。。我有下面的代码,但它没有显示条带签出页面,并且正在控制台中记录Promise{pending}。以前有人犯过这个错误吗

 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({
)就行了,谢谢!