首页 > 解决方案 > 尝试创建一个包装器以将其用作 sql.query() 的承诺

问题描述

所以我尝试创建一个包装器,这样我就可以在我的 sql 查询中使用异步等待,但是在使用包装器之后,邮递员不断触发 500 服务器错误和一个空对象(我假设)这是包装器的代码

function makeDBQuery(query, arguments) {
  return new Promise((resolve, reject) => {
      sql.query(query, arguments, (err, result) => {
              if (err) {
                  return reject(err);
              }

              return resolve(result);
          }
      )
  })
}```

**and here is the code that should be using it** 



```  generalInput = [organizer.Name, organizer.Email, hashed, organizer.Description,
          organizer.PhoneNumber, organizer.socialMediaAccounts[0].accountName,
          organizer.socialMediaAccounts[0].url, organizer.socialMediaAccounts[1].accountName,
          organizer.socialMediaAccounts[1].url, organizer.socialMediaAccounts[2].accountName,
          organizer.socialMediaAccounts[2].url, organizer.socialMediaAccounts[3].accountName, organizer.socialMediaAccounts[3].url, type]
  
      if (type === 0) {
        console.log("here")
          await makeDBQuery("INSERT INTO organizer (Name,Email,Password,Description,PhoneNumber,FacebookName,FacebookLink,InstagramName,InstagramLink,TwitterName,TwitterLink,YouTubeName,YouTubeLink,Type,proofimage) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", generalInput);
        console.log("now here")
          const organizerID= await makeDBQuery('select ID from organizer where email =?', emailInput);
         console.log(organizerID)
          organizationInput = [organizerID,organizer.logo]
          await makeDBQuery("INSERT INTO organization (organizerID,Logo) values (?,?)", organizationInput);
      }

标签: mysqlasync-awaitpromisepostman

解决方案


推荐阅读