关于node.js:node连接数据库

38次阅读

共计 2554 个字符,预计需要花费 7 分钟才能阅读完成。

1.node 端操作数据库
其中 mysql 中的 connect 配置须要换成本人的

连贯数据库

var mysql = require('mysql') // 调用 MySQL 模块 mysql 模块要装置 $ npm install mysql
 
// 创立一个 connection
 
var connection = mysql.createConnection({
    host: '', // 主机
    user: 'root', //MySQL 认证用户名
    password: 'password', //MySQL 认证用户明码
    port: '3306', // 端口号
    database: '' // 数据库名
})
 
// 创立一个 connection
connection.connect(function (err) {if (err) {console.log('[query] - :' + err)
        return
    }
    console.log('[connection connect] succeed!')
})

/**

  • 以下以 info_user 表为例
    */
// 执行 SQL 语句 --- 查问
connection.query('SELECT * FROM info_user WHERE user_name ="project_admin_2"', function (err, results, fields) {if (err) {console.log('[SELECT] - :' + err)
        return
    }
    console.log('The solution is:', results)
})
 
// 执行 SQL 语句 --- 增加
connection.query('INSERT INTO info_user(user_name, project_id, role_flag, graph_info) VALUES(?, ?, ?, ?)',['jiushugao', '1', '1','{}'], (err, results) => {if(err){console.log('[INSERT] - :' + err)
    }
    console.log(results)
})
 
// 执行 SQL 语句 --- 删除
connection.query('DELETE FROM info_user  WHERE user_name ="jiushugao"', (err, results) => {if(err){console.log('[DELETE] - :' + err)
    }
    console.log(results)
})
 
// 执行 SQL 语句 --- 更新
connection.query('UPDATE info_user SET role_flag ="2"WHERE user_name ="jiushugao"', (err, results) => {if(err){console.log('[UPDATE] - :' + err)
    }
    console.log(results)
})
 
// 敞开 connection
connection.end(function (err) {if (err) {return;}
    console.log('[connection end] succeed!')
 
})

能够将他们封装起来应用成果更佳,上面分三个文件

mysql.config.js
// 配置链接数据库参数
// 数据库参数用本人的
module.exports = {
    host : 'localhost',  //ip 地址
    port : 3306,// 端口号
    database : 'das',// 数据库名
    user : 'root',// 数据库用户名
    password : 'password'// 数据库明码
}
mysqlOperation.js
let mysql = require('mysql')// 引入 mysql 模块
var databaseConfig = require('./mysql.config')  // 引入数据库配置模块中的数据
 
// 向外裸露办法
module.exports = {query : function(sql,params,callback){
        // 每次应用的时候须要创立链接,数据操作实现之后要敞开连贯
        var connection = mysql.createConnection(databaseConfig);       
        connection.connect(function(err){if(err){console.log('数据库连贯失败')
                throw err
            }
         // 开始数据操作
         // 传入三个参数,第一个参数 sql 语句,第二个参数 sql 语句中须要的数据,第三个参数回调函数
        connection.query(sql, params, function(err,results,fields){if(err){console.log('数据操作失败')
                throw err
            }
            // 将查问进去的数据返回给回调函数
            callback && callback(results, fields)
            //results 作为数据操作后的后果,fields 作为数据库连贯的一些字段
            // 进行链接数据库,必须再查问语句后,要不然一调用这个办法,就间接进行链接,数据操作就会失败
             connection.end(function(err){if(err){console.log('敞开数据库连贯失败!')
                      throw err
                  }
              })
           })
       })
    }
}

实现上述配置之后就能够执行了

demo.js

var db = require('../mysql/mysqlOperation')
 
// 查问实例
var selectSql = 'SELECT * FROM info_user WHERE user_name ="project_admin_2"'
db.query(selectSql, [], function (result, fields) {console.log('查问后果:')
    console.log(result)
})
 
// 增加实例
var addSql = 'INSERT INTO info_user(user_name, project_id, role_flag, graph_info) VALUES(?, ?, ?, ?)'
var addSqlParams = ['jiushugao', '1', '1', '{}']
db.query(addSql, addSqlParams, function (result, fields) {console.log('增加胜利')
})

正文完
 0