mysql - 无法理解 koa 和 nodejs 中 promise 的返回

标签 mysql node.js koa

mysql.js文件中的代码

let query = function( sql, values ) {
return new Promise(( resolve, reject ) => {
    pool.getConnection(function(err, connection) {
        if (err) {
            reject( err )
        } else {
            connection.query(sql, values, ( err, rows) => {
                if ( err ) {
                    reject( err )
                } else {
                    resolve( rows )
                }
                connection.release()
            })
        }
    })
  })
}

let optUser = function (value) {
  let _sql = "sql command"
  return query(_sql, value)
}

调用代码如下

let result = mysqlModel.optUser([s,d]).then()

这里的result为null或不为null,我不明白,这是我的问题

  1. 如果我使用 select 命令,例如 let _sql = "select * from table where key1=? and key2=?",如果 result为null,表示没有记录,如果result不为null,会返回对应的用户数据,对吗?

  2. updatedeleteinsert返回什么?

非常感谢。

最佳答案

  1. 是的,如果查询未返回任何内容,您将得到 null,如果返回,它将提供 data
  2. 对于更新、删除、插入,您将获得 json,其中包含某些键,例如 changedRowsaffectedRows。 “插入”查询将为您提供该行的 insertId。基本上,您会收到操作已成功执行的确认信息。

connection.query(sql, values, ( err, results, fields) => { 如果(错误){ 拒绝(错误) } 别的 { 解决(行) } 连接.release() })

关于mysql - 无法理解 koa 和 nodejs 中 promise 的返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50746461/

相关文章:

php - phpMyAdmin 的单点登录

javascript - stub 模块功能

javascript - 如何将 MongooseArray.prototype.pull() 与 typescript 一起使用?

node.js - Heroku 构建被拒绝 - NodeJS

node.js - 使用回调时无法在 KOA 中设置 Header

node.js - KoaJs 无法处理 CloudFunctions 上的 POST 请求

javascript - 如何在 Koa/Express 的每条路线(网页)上共享全局侧边栏/页脚?

php - MySQL 和 INT auto_increment 字段

php - Yii2:如何在不同的数据库表中登录前端和后端?

mysql - 类似于中等表(约 3m 条记录)上的查询性能