簡體   English   中英

如何使用MySQL在Node.js中添加參數

[英]How to add parameter in nodejs with mysql

我STUDING與koa2的NodeJS,現在我想read & write & delete & update在MySQL數據庫的信息,我創建了一個名為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()

但是我不知道寫findAUserdeleteAUserupdateAUseraddAUser ,您能幫我嗎? 非常感謝。

也許您應該看看mysql-json模塊,它確實簡化了基本請求,例如插入,刪除,更新等。

您還將有一些示例來學習如何使用。

希望能幫助到你。

這里有兩件事:

  • 在您的query功能中,我會將connection.release()置於拒絕/解決上方。 否則可能不會被調用。
  • 在特定的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])
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM