1.Node.js 銜接 MySQL
$ cnpm install mysql
銜接mysql:
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '123456',
database : 'test'
});
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);
});
數據庫銜接參數申明
參數 形貌
host 主機地點 (默許:localhost)
user 用戶名
password 暗碼
port 端口號 (默許:3306)
database 數據庫名
charset 銜接字符集(默許:'UTF8_GENERAL_CI',注重字符集的字母都要大寫)
localAddress 此IP用於TCP銜接(可選)
socketPath 銜接到unix域途徑,當運用 host 和 port 時會被疏忽
timezone 時區(默許:'local')
connectTimeout 銜接超時(默許:不限定;單元:毫秒)
stringifyObjects 是不是序列化對象
typeCast 是不是將列值轉化為當地JavaScript範例值 (默許:true)
queryFormat 自定義query語句花樣化要領
supportBigNumbers 數據庫支撐bigint或decimal範例列時,須要設此option為true (默許:false)bigNumberStrings supportBigNumbers和bigNumberStrings啟用 強迫bigint或decimal列以JavaScript字符串範例返回(默許:false)
dateStrings 強迫timestamp,datetime,data範例以字符串範例返回,而不是JavaScript Date範例(默許:false)
debug 開啟調試(默許:false)
multipleStatements 是不是許一個query中有多個MySQL語句 (默許:false)
flags 用於修正銜接標誌
ssl 運用ssl參數(與crypto.createCredenitals參數花樣一至)或一個包括ssl設置文件名稱的字符串,現在只綁縛Amazon RDS的設置文件
2.Node.js 銜接 MongoDB:
MongoDB是一種文檔導向數據庫治理體系,由C++撰寫而成。MongoDB 教程。 裝置驅動
$ cnpm install mongodb
增編削查
要在 MongoDB 中豎立一個數據庫,起首我們須要豎立一個 MongoClient 對象,然後設置好指定的 URL 和 端口號。
假如數據庫不存在,MongoDB 將豎立數據庫並豎立銜接。
豎立銜接
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mydb";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
console.log("數據庫已豎立!");
db.close();
});
豎立鳩合
我們能夠運用 createCollection() 要領來豎立鳩合: 豎立鳩合
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost:27017/mydb';
MongoClient.connect(url, function (err, db) {
if (err) throw err;
console.log('數據庫已豎立');
var dbase = db.db("mydb");
dbase.createCollection('runoob', function (err, res) {
if (err) throw err;
console.log("豎立鳩合!");
db.close();
});
});
數據庫操縱( CURD )
與 MySQL 差別的是 MongoDB 會自動豎立數據庫和鳩合,所以運用前我們不須要手動去豎立。 插進去數據 以下實例我們銜接數據庫
runoob 的 site 表,並插進去兩條數據:
插進去數據
var MongoClient = require('mongodb').MongoClient;
var DB_CONN_STR = 'mongodb://localhost:27017/runoob'; # 數據庫為 runoob
var insertData = function(db, callback) {
//銜接到表 site
var collection = db.collection('site');
//插進去數據
var data = [{"name":"菜鳥教程","url":"www.runoob.com"},{"name":"菜鳥東西","url":"c.runoob.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();
});
});
實行以下敕令輸出就效果為:
$ node test.js //銜接勝利!
{ result: { ok: 1, n: 2 },
ops:
[ { name: '菜鳥教程',
url: 'www.runoob.com',
_id: 58c25e13a08de70d3b9d4116 },
{ name: '菜鳥東西',
url: 'c.runoob.com',
_id: 58c25e13a08de70d3b9d4117 } ],
insertedCount: 2,
insertedIds: [58c25e13a08de70d3b9d4116, 58c25e13a08de70d3b9d4117]
}
從輸出效果來看,數據已插進去勝利。
我們也能夠翻開 MongoDB 的客戶端檢察數據,如:
show dbs
admin 0.000GB
local 0.000GB
runoob 0.000GB # 自動豎立了 runoob 數據庫
show tables
site # 自動豎立了 site 鳩合(數據表)
db.site.find() # 檢察鳩合中的數據
{ "_id" : ObjectId("58c25f300cd56e0d7ddfc0c8"), "name" : "菜鳥教程", "url" : "www.runoob.com" }
{ "_id" : ObjectId("58c25f300cd56e0d7ddfc0c9"), "name" : "菜鳥東西", "url" : "c.runoob.com" }
查詢數據
以下實例檢索 name 為 “菜鳥教程” 的實例:
var MongoClient = require('mongodb').MongoClient;
var DB_CONN_STR = 'mongodb://localhost:27017/runoob';
var selectData = function(db, callback) {
//銜接到表
var collection = db.collection('site');
//查詢數據
var whereStr = {"name":'菜鳥教程'};
collection.find(whereStr).toArray(function(err, result) {
if(err)
{
console.log('Error:'+ err);
return;
}
callback(result);
});
}
MongoClient.connect(DB_CONN_STR, function(err, db) {
console.log("銜接勝利!");
selectData(db, function(result) {
console.log(result);
db.close();
});
});
實行以下敕令輸出就效果為:
銜接勝利!
[ { _id: 58c25f300cd56e0d7ddfc0c8,
name: '菜鳥教程',
url: 'www.runoob.com' } ]
更新數據
我們也能夠對數據庫的數據舉行修正,以下實例將 name 為 “菜鳥教程” 的 url 改成 https://www.runoob.com:
var MongoClient = require('mongodb').MongoClient;
var DB_CONN_STR = 'mongodb://localhost:27017/runoob';
var updateData = function(db, callback) {
//銜接到表
var collection = db.collection('site');
//更新數據
var whereStr = {"name":'菜鳥教程'};
var updateStr = {$set: { "url" : "https://www.runoob.com" }};
collection.update(whereStr,updateStr, function(err, result) {
if(err)
{
console.log('Error:'+ err);
return;
}
callback(result);
});
}
MongoClient.connect(DB_CONN_STR, function(err, db) {
console.log("銜接勝利!");
updateData(db, function(result) {
console.log(result);
db.close();
});
});
實行勝利后,進入 mongo 治理東西檢察數據已修正:
db.site.find()
{ "_id" : ObjectId("58c25f300cd56e0d7ddfc0c8"), "name" : "菜鳥教程", "url" : "https://www.runoob.com" }
{ "_id" : ObjectId("58c25f300cd56e0d7ddfc0c9"), "name" : "菜鳥東西", "url" : "c.runoob.com" }
刪除數據
以下實例將 name 為 “菜鳥東西” 的數據刪除 :
var MongoClient = require('mongodb').MongoClient;
var DB_CONN_STR = 'mongodb://localhost:27017/runoob';
var delData = function(db, callback) {
//銜接到表
var collection = db.collection('site');
//刪除數據
var whereStr = {"name":'菜鳥東西'};
collection.remove(whereStr, function(err, result) {
if(err)
{
console.log('Error:'+ err);
return;
}
callback(result);
});
}
MongoClient.connect(DB_CONN_STR, function(err, db) {
console.log("銜接勝利!");
delData(db, function(result) {
console.log(result);
db.close();
});
});
實行勝利后,進入 mongo 治理東西檢察數據已刪除:
db.site.find()
{ "_id" : ObjectId("58c25f300cd56e0d7ddfc0c8"), "name" : "菜鳥教程", "url" : "https://www.runoob.com" }