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
的回报是什么?
非常感谢。
答案 0 :(得分:1)
null
,如果有,则会提供data
json
,其中包含changedRows
,affectedRows
等特定键。 A'插入'查询将为您提供该行的insertId。基本上,您将确认您的操作已成功执行。 connection.query(sql, values, ( err, results, fields) => {
if ( err ) {
reject( err )
} else {
resolve( rows )
}
connection.release()
})
答案 1 :(得分:0)
此let result = mysqlModel.optUser([s,d]).then()
不会将正确的数据设置为结果变量。它只会返回一个未决的承诺。只有在解决了承诺后才能收到数据。致电承诺的正确方法是:
mysqlModel.optUser([s, d])
.then(function (data) {
// Your data will be present here. You can check for null here.
console.log(data);
})
.catch(function (err) {
// This is called if the query encounters some error.
console.log(err);
});
您可以阅读有关承诺here
的更多信息