Node.js系列——(3)鏈接DB

背景

node.js,有人稱之爲運行在服務器端的JavaScript。以往咱們使用JavaScript時,都是依賴後端查詢數據庫並返回數據,而JavaScript只須要展現便可。問題來了,就不能繞開後端直接查詢數據庫嗎?答案是確定的。javascript

關係型——以mysql操做爲例

node.js提供了mysql操做的驅動(模塊),若是還未安裝,須要執行 npm install mysql命令來安裝。java

//引入模塊
var mysql=require('mysql');

//定義鏈接對象connection
var connection=mysql.createConnection({
    host:'192.168.*.*',
    user:'root',
    password:'******',
    database:'DB'
});

//鏈接
connection.connect();

//執行查詢測試
var sql='select * from sys_user';
connection.query(sql,function(err,result){
    if(err){
        console.log('[select error]-',err.message);
        return;
    }

    console.log('-----select-------');
    console.log(result);
    console.log('------------------------');
});

//關閉鏈接
connection.end();

部分查詢結果以下:node

這裏寫圖片描述

node.js鏈接mysql的其餘增刪改操做就不一一展現了,和查詢操做相似,準備好sql語句,使用提供的響應的方法就ok了。mysql

非關係型——以mongoDB爲例

安裝驅動模塊sql

npm install mongodb

插入操做mongodb

var MongoClient = require('mongodb').MongoClient;
var DB_CONN_STR = 'mongodb://192.168.*.*:27017/runoob';    


 var insertData = function(db, callback) {  
    // 鏈接到表 site
    var collection = db.collection('site');
    // 準備數據
    var data = [{"name":"Sherry","sex":"female","email":"xxxxx@163.com"},{"name":"Tom","sex":"male","email":"xxxx@163.com"}];
    collection.insert(data, function(err, result) { 
        if(err)
        {
            console.log('Error:'+ err);
            return;
        }     
        callback(result);
    });
}

MongoClient.connect(DB_CONN_STR, function(err, db) {
  console.log("鏈接成功!");
  insertData(db, function(result) {
    console.log(result);
    db.close();
  });
});

執行代碼:數據庫

這裏寫圖片描述

能夠看到插入日誌
這裏寫圖片描述npm

使用命令mongodb/bin/mongo進入mongo客戶端,能夠看到剛剛插入的數據。後端

這裏寫圖片描述

總結

從操做來看,node.js操做數據庫仍是比較簡單的,底層實現依賴封裝的mysql/mongodb模塊。服務器

從場景來看,node.js雖然能夠實現大多數應用的功能,但並不是要替代其餘技術或產品,而是針對不一樣狀況作出適合的選擇。

相關文章
相關標籤/搜索