中的代码 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
是空还是不空,我不明白,这是我的问题
如果我使用 select
命令,例如 let _sql = "select * from table where key1=? and key2=?"
,如果 result
如果 result
不为空,它将返回相应的用户数据,对吗?
回报是多少 update
, delete
, insert
?
非常感谢。
2条答案
按热度按时间kx7yvsdv1#
这个
let result = mysqlModel.optUser([s,d]).then()
不会为结果变量设置正确的数据。它只会返回一个悬而未决的承诺。只有承诺得到解决,才能接收数据。做出承诺的正确方法是:你可以在这里阅读更多关于承诺的内容
44u64gxh2#
是的,你会得到
null
如果query不返回任何内容,并且如果返回了,则data
对于更新、删除、插入,您将获得json
由一些钥匙组成,比如changedRows
,affectedRows
. “insert”查询将为您提供该行的insertid。基本上,您将得到一个确认,您的操作已成功执行。connection.query(sql, values, ( err, results, fields) => { if ( err ) { reject( err ) } else { resolve( rows ) } connection.release() })