nodejs學習(三)--express鏈接mysql數據庫,mysql查詢封裝

1、說一下javascript

  鏈接不一樣的數據庫須要安裝相應的插件,此demo使用mysql數據庫,需自行安裝mysql數據庫軟件。java

  新建數據庫webapp,node

  新建表users:mysql

  

2、直接開碼web

npm install mysql --save

  註釋:安裝mysql依賴包,保存在本項目sql

  一、測試數據庫

  嘗試鏈接數據庫,並查詢表usersexpress

  在app.js中,隨便找個位置添加以下測試代碼,測試完可刪除npm

//---------測試代碼----------
var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password : '123',
  database : 'webapp'
});
 
connection.connect();
 
connection.query('SELECT * from users', function(err, data, fields) {
  if (err) {
    console.log(err);
    return;
  };
 
  console.log(data);
});
 
connection.end();

 

  啓動服務器json

nodemon app

  

  nice,數據獲取成功。

  可是數據格式和數據不太同樣,因此須要對獲取的結果處理一下,修改:

  

  將數據轉成json字符串,而後再轉成json對象就是咱們想要的數據結構了,打印結果:

 

 

  ok,鏈接數據庫測試成功,開始封裝數據查詢模塊,刪除掉測試代碼

 

  二、封裝

  根目錄下新建db.config.js

module.exports = {
    host     : 'localhost',
    user     : 'root',
    password : '123',
    database : 'webapp'
  }

 

  配置參數需自定義,示例只作參考

  根目錄新建db.js

var mysql = require('mysql');
var dbConfig = require('./db.config'); 


module.exports = {
    query : function(sql,params,callback){
        //每次使用的時候須要建立連接,數據操做完成以後要關閉鏈接
        var connection = mysql.createConnection(dbConfig);        
        connection.connect(function(err){
            if(err){
                console.log('數據庫連接失敗');
                throw err;
            }
         //開始數據操做
        connection.query( sql, params, 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;
                  }
              });
           });
       });
    }
};

 

  封裝完成,能夠在任意的文件進行調用。

  routes/index.js

var express = require('express');
var router = express.Router();
var db = require("../db"); //引入數據庫封裝模塊

/* GET home page. */
router.get('/', function(req, res, next) {

  //查詢users表
  db.query("SELECT * FROM USERS",[],function(results,fields){
    console.log(results);
    
    res.render('index', { title: 'Express11' });
  })
  
});

module.exports = router;

  刷新首頁,查看打印結果

  very nice,封裝完成,接下來就是封裝增刪改查,完善數據庫操做方法了。

 

3、最後

  路漫漫其修遠兮,框架到目前也算是有了個大概,接下來,就要開始填充內容了。

  

 

參考文章:https://blog.csdn.net/crazy_jialin/article/details/78042855

相關文章
相關標籤/搜索