开发者社区 > 云原生 > Serverless > 正文

函数计算中,在 note.js 中访问 mysql, callback回调是异步,如何解决?

函数计算中,在 note.js 中访问 mysql。 iwEdAqNqcGcDAQTRAuUF0QDwBrAduWh7vFvjxAV8Q-euxQcAB9IIDHCVCAAJomltCgAL0gAA4rs.jpg_720x720q90.jpg queryResult 里面 获取不到 访问数据库是否成功了。而 callback回调又是个异步。 函数执行完了,这货才回来。我该咋解决这种问题呀?

展开
收起
多麻辣哦 2024-01-03 14:49:26 61 0
1 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在函数计算中,如果您需要在 Node.js 中使用 MySQL,可以使用 mysql 模块。但是,由于回调函数是异步的,您需要使用 Promise 或者 async/await 来处理异步操作。

    以下是一个使用 Promise 的示例:

    const mysql = require('mysql');
    
    function queryDatabase(sql, args) {
      return new Promise((resolve, reject) => {
        const connection = mysql.createConnection({
          host: 'localhost',
          user: 'your_username',
          password: 'your_password',
          database: 'your_database'
        });
    
        connection.connect();
    
        connection.query(sql, args, (error, results) => {
          if (error) {
            reject(error);
          } else {
            resolve(results);
          }
          connection.end();
        });
      });
    }
    
    // 使用示例
    queryDatabase('SELECT * FROM users WHERE id = ?', [1])
      .then(results => {
        console.log(results);
      })
      .catch(error => {
        console.error(error);
      });
    

    以下是一个使用 async/await 的示例:

    const mysql = require('mysql');
    
    async function queryDatabase(sql, args) {
      const connection = mysql.createConnection({
        host: 'localhost',
        user: 'your_username',
        password: 'your_password',
        database: 'your_database'
      });
    
      await connection.connect();
    
      const [results] = await connection.promise().query(sql, args);
    
      connection.end();
    
      return results;
    }
    
    // 使用示例
    (async () => {
      try {
        const results = await queryDatabase('SELECT * FROM users WHERE id = ?', [1]);
        console.log(results);
      } catch (error) {
        console.error(error);
      }
    })();
    

    请注意,您需要根据实际情况替换数据库连接信息(如主机名、用户名、密码和数据库名)。

    2024-01-03 21:56:03
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    JavaScript面向对象的程序设计 立即下载
    Delivering Javascript to World 立即下载
    编程语言如何演化-以JS的private为例 立即下载

    相关镜像