如何使用 mysql 在 nodejs 中添加参数
How to add parameter in nodejs with mysql
我正在用 koa2 研究 nodejs,现在我想在 mysql 数据库中获取 read & write & delete & update
信息,我创建了一个名为 dbconfig.js
的文件来配置数据库信息,以及另一个文件叫做mysql.js
就像书上说的那样
const mysql = require('mysql')
const config = require('./dbconfig')
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 findAUser = function () {
let _sql = `
SELECT * FROM user where id =
`
return query(_sql)
}
let deleteAUser = function () {
let _sql = `
DELETE FROM user where id =
`
return query(_sql)
}
let updateAUser = function () {
let _sql = `
UPDATE user set name = where id =
`
return query(_sql)
}
let addAUser = function () {
let _sql = `
insert into user () value ()
`
return query(_sql)
}
module.exports={
findAUser,
deleteAUser,
updateAUser,
addAUser
}
在app.js
中,我这样称呼它们const userModel = require('./mysql');userModel.findAUser()
。
但是我不知道写findAUser
、deleteAUser
、updateAUser
、addAUser
,你能帮帮我吗?非常感谢。
也许你应该看看 mysql-json 模块,它确实简化了插入、删除、更新等基本请求...
你也有一些例子可以学习如何使用。
希望对您有所帮助。
这里有两件事:
- 在您的
query
函数中,我会将 connection.release()
放在 reject/resolve 之上。否则它可能不会被调用。
- 在您的特定 SQL 函数中,您需要将参数作为参数数组提供。请参阅
findAUser
函数的示例:
所以它可能看起来像这样:
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) => {
connection.release()
if ( err ) {
reject( err )
} else {
resolve( rows )
}
})
}
})
})
}
let findAUser = function (id) {
let _sql = `
SELECT * FROM user where id = ?
`
return query(_sql, [id])
}
我正在用 koa2 研究 nodejs,现在我想在 mysql 数据库中获取 read & write & delete & update
信息,我创建了一个名为 dbconfig.js
的文件来配置数据库信息,以及另一个文件叫做mysql.js
就像书上说的那样
const mysql = require('mysql')
const config = require('./dbconfig')
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 findAUser = function () {
let _sql = `
SELECT * FROM user where id =
`
return query(_sql)
}
let deleteAUser = function () {
let _sql = `
DELETE FROM user where id =
`
return query(_sql)
}
let updateAUser = function () {
let _sql = `
UPDATE user set name = where id =
`
return query(_sql)
}
let addAUser = function () {
let _sql = `
insert into user () value ()
`
return query(_sql)
}
module.exports={
findAUser,
deleteAUser,
updateAUser,
addAUser
}
在app.js
中,我这样称呼它们const userModel = require('./mysql');userModel.findAUser()
。
但是我不知道写findAUser
、deleteAUser
、updateAUser
、addAUser
,你能帮帮我吗?非常感谢。
也许你应该看看 mysql-json 模块,它确实简化了插入、删除、更新等基本请求...
你也有一些例子可以学习如何使用。
希望对您有所帮助。
这里有两件事:
- 在您的
query
函数中,我会将connection.release()
放在 reject/resolve 之上。否则它可能不会被调用。 - 在您的特定 SQL 函数中,您需要将参数作为参数数组提供。请参阅
findAUser
函数的示例:
所以它可能看起来像这样:
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) => {
connection.release()
if ( err ) {
reject( err )
} else {
resolve( rows )
}
})
}
})
})
}
let findAUser = function (id) {
let _sql = `
SELECT * FROM user where id = ?
`
return query(_sql, [id])
}