nodejs之連接mysql數據庫


一:demo

  

var mysql = require('mysql');
var connection = mysql.createConnection({
    host    : '192.168.0.2',
    port    : '3307',
    user    : 'radar',
    password: 'radar',
    database: 'radar'
});
connection.connect();

connection.query('select 1+1 as solution', function (error, results, fields){
    if (error) throw error;
    console.log('The solution is: ',results[0].solution);
});

  

 

二: 封裝

config.js文件

module.exports = {
    host     : '192.168.0.2',
    port     : '3307',
    user     : 'radar',
    password : 'radar',
    database : 'radar',
}
 
 
db.js文件
var mysql = require('mysql');
var dbConfig = require('./db/config');

module.exports = {
    query : function(sql,param,callback){
        //每次使用的時候要創建鏈接,數據操作完之后要關閉連接    
        var connection = mysql.createConnection(dbConfig);
        connection.connect(function(err){
            if(err){
                console.log('數據庫鏈接失敗');
                throw err;
            }
            //開始數據庫操作
            connection.query(sql, param, function(err,results,fields){
                if(err){
                    console.log('數據庫操作失敗');
                    throw err;
                }

                //將查詢出來的結果返回給回調函數,這個時候就沒有必要使用錯誤前置的思想了,因為我們在這個文件中已經為錯誤進行了處理,如果數據檢索錯誤,直接會阻塞到這個文件中
                callback && callback(JSON.parse(JSON.stringify(results)), JSON.parse(JSON.stringify(fields)));

                //results作為數據操作后的結果,fields作為數據庫連接的一些字段
                //停止連接數據庫,必須要在查詢數據庫之后,不然一調用這個方法,就直接停止連接,數據操作就會失敗
                connection.end(function(err){
                    if(err){
                        console.log('關閉數據庫連接失敗!');
                        throw err;
                    }
                })
            })
        })
    }
}
 
entrance.js
const express = require('express')
const app = express()
const bodyParser = require('body-parser')
// 我的基礎路由文件

const db = require('./db.js')

app.get('/123',function(req,res){
  db.query('select * from device',(e,r)=>{
      if(e){
        res.status(200).json({"status":false,"msg":e,"data":[]});
      }
      res.status(200).json({"status":true,"msg":"","data":r});
  })

})



// json 解析 
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));

//設置跨域訪問
app.all('*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
    res.header("X-Powered-By",' 3.2.1')
    next();
});
// 暴露公共資源
app.use(express.static('public'))
app.listen(8010)

console.log('app run port 8010')
 
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM