nosql大行其道的如今,mysql這樣的關係型資料庫依然有著不可撼動的位置,對於中型,大型物件導向的專案,關係型資料庫依然是首選,真正的專案,應當是將資料庫的任務分離給專門的資料庫工程師去完成。
本回介紹使用node.js連線mysql資料庫,基於前面的express框架構建簡單的購物車example。
資料庫驅動是語言連線資料庫的必備庫,node.js連線mysql的基本驅動叫做「node-mysql」,另外node npm社群也提供了mysql orm的資料庫驅動,就類似於上一回中的mongoose,基於模型對映的操作方式,叫做「node-sequelize」,效能相對於原生驅動肯定要差不少。
package.json
}
直接採用官方提供的連線示例:
var mysql = require('mysql');
//建立並配置連線引數
var connection = mysql.createconnection();
//連線
connection.connect();
//測試查詢語句,使用query輸入sql語句
connection.query('select * from teacher_base_info limit 10', function (error, results, fields) );
//斷開連線
connection.end();
讀取成功
需求分析
算了算,大概需要如下幾個基本功能
為了示例簡單,只做這幾個功能罷了
使用phpmyadmin或者手動建立乙個庫,一張表
資料庫叫:shopcart
表名:items
在開發專案時,應該將資料庫賬號密碼的配置檔案單獨放在配置檔案中,所以在專案目錄下先新建dbconfig.json,使用json是因為js方便讀取。
dbconfig.json
var mysql = require('mysql');//引入mysql驅動
var dbconfig = require("./dbconfig.json");//引入資料庫配置檔案
var express = require("express")
var bodyparser = require('body-parser');
var connection = mysql.createconnection(dbconfig);
//express框架基本配置
connection.connect();
//主頁
connection.query('select * from items', function(err, data, fields) );
});})//刪除一件商品
var id = req.params.id;
connection.query("delete from items where id=?",id,function(err,data,fields));
});//插入一件商品
console.log(req.body);
connection.query("insert into items set ?",req.body,function(err, data, fields));
});
分析套路事實上在使用後我發現node-mysql模組使用十分簡單:
從頭到尾只使用乙個query方法,傳入資料庫語句,**函式獲取資料即可,非常簡單
layout.jade
doctype html
html
head
title my shopping cart
body
h1 my shopping cart
#cart
block body
index.jade
extends layout
block body
h2 所有商品
if(items.length)
uleach item in items
lih3: a(href="/project/#")=item.title
p=item.description
span: a(href="/delete/#") 刪除
else
p 沒有任何商品
h2 建立新的商品
form(action="/projects",method="post")
plabel 標題
input(type="text",name="title")
plabel 詳情
textarea(name="description")
pbutton 提交
將高興進行到底
amd x2 7750 k10架構的cpu能讓vm6.5和esx3.5的組合跑的更順利。當老方寫完 高興的老方和老方的高興 的博文,雖說從內容上看一片喜氣洋洋,外加興奮異常。但當時老方的心理世界還是七上八下 忐忑不安的,為什麼呢,是啊,為什麼呢?當時老方怕啊,本來家裡有台電腦用著好好的,再花500大...
將PCB設計進行到底
在當前崗位上,pcb設計本不是份內工作,但是所裡的pcb設計部門那工作效率實在無法忍受,快過年了出差外協也很是不方便。手頭的專案裡三個板子還是蠻急的,希望年前都能發出去製板,無奈之下只能選擇自己動手。過去自己設計的pcb兩層板較多,大都是簡單的數碼訊號板,基本不帶大電流 模數混合或者高速 50m以上...
將企業應用進行到底
過年到現在一直沒有在這個blog上寫些什麼,其實這些日子一直在思考我們在企業應用這條路上可以走多遠。大凡國內的企業應用開發公司多半都是在掙扎,10個做專案的公司,大半是勉強保本,小半虧損倒閉,能盈利的恐怕屈指可數。在看中國的it大環境,qq 盛大是it英雄,而做企業應用的公司卻少露頭角。我並不認為q...