我正在研究node.js,我看到一些像这样的代码
const mysql = require('mysql')
const config = require('./defaults')
var pool = mysql.createPool({
host : config.database.HOST,
user : config.database.USERNAME,
password : config.database.PASSWORD,
database : config.database.DATABASE,
port : config.database.PORT
});
let query = function( sql, values ) {
return new Promise(( resolve, reject ) => {
pool.getConnection(function(err, connection) {
if (err) {
resolve( err )
} else {
connection.query(sql, values, ( err, rows) => {
if ( err ) {
reject( err )
} else {
resolve( rows )
}
connection.release()
})
}
})
})
}
let postdetail = function (id) {
let _sql = `
SELECT * FROM posts where postid = ${id}
`
return query(_sql)
}
module.exports={
postdetail
}
让我感到困惑的是,query
是一个函数,它有两个参数,一个是sql
,另一个是values
,但在postdetail
中,{return
1}}只有一个参数,有人能解释一下吗?非常感谢。
答案 0 :(得分:0)
query
是mysql查询函数的包装函数。它需要查询和值。它可用于执行mysql的Select
,Insert
和Update
查询。
因此,在select的情况下,您只需要传递mysql query
,不需要发送值,而query
包装器方法values
内部将undefined
。
对于Insert
和Updated
这样的情况,您可以将数据值与查询一起发送。