node.js連接數(shù)據(jù)庫(mysql)

node 連接數(shù)據(jù)庫
這里默認(rèn)你安裝了Node
安裝 express 依賴

npm install express --save

安裝mysql

npm install mysql --save

創(chuàng)建項目

express myapp
cd myapp 
在myapp 目錄下npm install

安裝mysql數(shù)據(jù)庫
http://www.cnblogs.com/tongy0/p/6739188.html(這里是個壓縮版 可以用命令行安裝)
注:安裝的時候記得設(shè)置密碼
安裝成功后 用可視化sql界面鏈接 這里用的是 sqlyog

image.png

新建張表(注意字符集選擇)
image.png

插入數(shù)據(jù)
image.png

在我們的myapp項目中 新建 db.js文件 創(chuàng)建我們的數(shù)據(jù)庫連接

var mysql = require('mysql');
var db ={};
db.query = function sqlback(sqllan,fn){
    var connetion = mysql.createConnection({
        host:"localhost",       //   host表示mysql安裝的地址嵌削,因為我是本地的數(shù)據(jù)庫道盏,所以直接使用localhost
        user:"root",            // user表示mysql的用戶名
        password:"111111",      // password表示mysql的密碼
        database:'mysql',       // database表示你要選擇操作的具體的庫的名字
        port:3306               // port表示端口,可不填,默認(rèn)就是3306

    });

    connetion.connect(function(err){  //調(diào)用connection的connect方法判斷連接是否成功染坯,如果失敗累奈,則把錯誤信息打印出來榕莺,并且停止運行喷兼。
        if(err){
            console.log(err);
            return;
        }
    });
    var sql = sqllan;
    if(!sql)return;
    //調(diào)用connection的query方法來直接向數(shù)據(jù)庫發(fā)送sql語句,
    //并且把用回調(diào)函數(shù)返回結(jié)果肄渗,其中回調(diào)函數(shù)中有三個參數(shù)镇眷,
    //第一參數(shù)是錯誤對象,如果操作失敗翎嫡,則會停止并打印錯誤信息欠动,
    //第二參數(shù)是具體的返回的結(jié)果,正常情況下是一個數(shù)組惑申,里面包含很多json,
    //第三個參數(shù)也是一個數(shù)組具伍,里面包含著最每個數(shù)據(jù)的解釋,比如當(dāng)前數(shù)據(jù)屬于哪個庫圈驼,那張表等等人芽。我們使用最多的自然是第二個參數(shù)了
    connetion.query(sql,function(err,rows,filds){ //給他賦值一個叫query的方法,這個方法接受兩個參數(shù)绩脆,第一個參數(shù)是你查詢數(shù)據(jù)時候的sql語句萤厅,第二個參數(shù)是獲取查詢結(jié)果的回調(diào)函數(shù)。
        if(err){
            console.log(err);   
            return
        }
        fn(rows);
    });
   
    connetion.end(function(err){
        if(err){
            return;
        }else{
            console.log('連接關(guān)閉');
        }
    });

}
module.exports= db;

攔截路由 拿取數(shù)據(jù)
(express 從入門到放棄)http://www.expressjs.com.cn/4x/api.html

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var mysql = require('./db.js')
var index = require('./routes/index');
var users = require('./routes/users');
var app = express();
//加載hbs模板
var hbs = require('hbs');

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
//這里我們進(jìn)行攔截 路由 然后 用這個app.use() 這個api  
app.use('/', function(req, res, next) {
  var sql="select * from userinfo";
  var result = mysql.query(sql,function(result){
      res.render('index', { title: JSON.stringify(result) });
  });

});
app.use('/users', users);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

好了 看下效果 一個簡單的查詢


image.png

長路漫漫靴迫,做下筆記 ...

zixia.gif
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末惕味,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子玉锌,更是在濱河造成了極大的恐慌名挥,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件主守,死亡現(xiàn)場離奇詭異禀倔,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)丸逸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門蹋艺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來剃袍,“玉大人黄刚,你說我怎么就攤上這事∶裥В” “怎么了憔维?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵涛救,是天一觀的道長。 經(jīng)常有香客問我业扒,道長检吆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任程储,我火速辦了婚禮蹭沛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘章鲤。我一直安慰自己摊灭,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布败徊。 她就那樣靜靜地躺著帚呼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪皱蹦。 梳的紋絲不亂的頭發(fā)上煤杀,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機(jī)與錄音沪哺,去河邊找鬼沈自。 笑死,一個胖子當(dāng)著我的面吹牛辜妓,可吹牛的內(nèi)容都是我干的酥泛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼嫌拣,長吁一口氣:“原來是場噩夢啊……” “哼柔袁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起异逐,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤捶索,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后灰瞻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體腥例,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年酝润,在試婚紗的時候發(fā)現(xiàn)自己被綠了燎竖。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡要销,死狀恐怖构回,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤纤掸,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布脐供,位于F島的核電站,受9級特大地震影響借跪,放射性物質(zhì)發(fā)生泄漏政己。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一掏愁、第九天 我趴在偏房一處隱蔽的房頂上張望歇由。 院中可真熱鬧,春花似錦果港、人聲如沸印蓖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赦肃。三九已至,卻和暖如春公浪,著一層夾襖步出監(jiān)牢的瞬間他宛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工欠气, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留厅各,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓预柒,卻偏偏與公主長得像队塘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子宜鸯,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容