简体   繁体   English

如何使用MySQL在Node.js中添加参数

[英]How to add parameter in nodejs with mysql

I am studing nodejs with koa2, and now I want to read & write & delete & update informations in mysql database, I created a file called dbconfig.js for configure the database informations, and another file called mysql.js as the book said like following 我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
    }

In app.js , I call them like this const userModel = require('./mysql');userModel.findAUser() . app.js ,我称它们为const userModel = require('./mysql');userModel.findAUser()

But I have no idea to write findAUser , deleteAUser , updateAUser , addAUser , can you help me? 但是我不知道写findAUserdeleteAUserupdateAUseraddAUser ,您能帮我吗? Many thanks. 非常感谢。

Maybe you should take a look to mysql-json module, which really simplifies basic requests like insert, delete, update, etc... 也许您应该看看mysql-json模块,它确实简化了基本请求,例如插入,删除,更新等。

You also have some exemples to learn how to use. 您还将有一些示例来学习如何使用。

Hope it helps. 希望能帮助到你。

Two things here: 这里有两件事:

  • In your query function, I would put the connection.release() above the reject/resolve. 在您的query功能中,我会将connection.release()置于拒绝/解决上方。 Otherwise it will probably not being called. 否则可能不会被调用。
  • In your specific SQL functions you need to provide the parameters as an array of parameters. 在特定的SQL函数中,您需要将参数作为参数数组提供。 See example for the findAUser function: 请参见findAUser函数的示例:

So it could look like this: 所以看起来可能像这样:

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