Я изучаю 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 есть только один параметр. Может кто-нибудь мне его объяснит? Большое спасибо.






query - это функция-оболочка для функции запроса mysql. Требуется запрос и значения. Его можно использовать для выполнения Select, Insert и Update запросов mysql.
Таким образом, в случае выбора вам нужно только передать mysql query, не нужно отправлять значения, и внутри этого метода оболочки queryvalues будет undefined.
Для таких случаев, как Insert и Updated, вы можете отправлять значения в виде массива вместе с запросом.