connection.query(...)。然后不是一个函数

时间:2018-09-05 11:27:01

标签: mysql node.js express

我是节点js的新手。我在后端中使用带有express的节点,而mysql作为数据库使用。我在处理异步调用时感到困惑。在我使用的代码中。

fun main(args: Array<String>) : Unit {
    val l = listOf(listOf(1,2,3), listOf(4,5,6))
    val t = label@ with(l) {
        get(0).forEach {
            return@label 2
        }
    }
    println(t)
}

我收到错误 connection.query(...)。然后不是函数

return connection.query(qry).then(
        function(result) {
          console.log('Query executed');
          resolve(result.rows[0]);
        },
        function(err) {
          console.log('Error occurred', err);
          reject(err);
        }
  )

已正确执行。 简单的查询我没有任何问题。在执行复杂查询时,上面的一个不是等待完整的查询执行

3 个答案:

答案 0 :(得分:2)

您需要导入mysql,并实际创建连接。

只需:

where

答案 1 :(得分:1)

我还没有发现,我们可以将诺言与connection.query('')函数一起使用。根据mysqljs文档,我们可以传递回调函数以获取结果。

var mysql      = require('mysql');
var connection = mysql.createConnection(...);

connection.query('SELECT * FROM table_name', function (error, results, fields) {
  if (error) throw error;

  console.log(result);
});

答案 2 :(得分:1)

要首先将.then()与mysql一起使用,您需要“承诺”数据库客户端。这可以通过为MySQL客户端创建包装器类来实现。
选中此article以获得更好的理解