一、說一下
連接不同的數據庫需要安裝相應的插件,此demo使用mysql數據庫,需自行安裝mysql數據庫軟件。
新建數據庫webapp,
新建表users:

二、直接開碼
npm install mysql --save
注釋:安裝mysql依賴包,保存在本項目
1、測試
嘗試連接數據庫,並查詢表users
在app.js中,隨便找個位置添加如下測試代碼,測試完可刪除
//---------測試代碼----------
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();
啟動服務器
nodemon app

nice,數據獲取成功。
但是數據格式和數據不太一樣,所以需要對獲取的結果處理一下,修改:

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

ok,連接數據庫測試成功,開始封裝數據查詢模塊,刪除掉測試代碼
2、封裝
根目錄下新建db.config.js
|
1
2
3
4
5
6
|
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,封裝完成,接下來就是封裝增刪改查,完善數據庫操作方法了。
三、最后
路漫漫其修遠兮,框架到目前也算是有了個大概,接下來,就要開始填充內容了。
參考文章:https://blog.csdn.net/crazy_jialin/article/details/78042855
轉載:https://www.cnblogs.com/yang-shun/p/10089669.html

