node鏈接mysql數據庫

1.node端操做數據庫
其中mysql中的connect配置須要換成本身的node

鏈接數據庫
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.jsmysql

// 配置連接數據庫參數
// 數據庫參數用本身的
module.exports = {
    host : 'localhost',  //ip地址,本地默認localhost
    port : 3306,//端口號
    database : '',//數據庫名
    user : 'root',//數據庫用戶名
    password : 'password'//數據庫密碼
}

mysqlOperation.jssql

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.jsnpm

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('添加成功')
})
相關文章
相關標籤/搜索