1、在API的開發當中,數據庫的處理顯得尤為重要,express 工程 鏈接mysql數據庫有很好的模板可以借鑒。
1.1 創建數據庫鏈接
新建一個DB目錄,在DB目錄下新建文件 db.js
內容如下
/** * Created by wjw on 2018/10/13. */ //db.js // connect mySql var mysql = require('mysql'); var pool = mysql.createPool({ connectionLimit: 10, host: 'localhost', user: 'root', password: '0', database: 'testForApi' }); function query(sql, values, callback) { console.log("db pool"); pool.getConnection(function (err, connection) { if(err) throw err; console.log("get connection "); //Use the connection connection.query(sql, values,function (err, results, fields) { console.log(JSON.stringify(results)); //每次查詢都會 回調 callback(err, results); //只是釋放鏈接,在緩沖池了,沒有被銷毀 connection.release(); if(err) throw error; }); }); } exports.query = query;
1.2新建一個關於 user 對象的sql查詢管理類 userSql.js 它會被userRouter.js, api.js 等相關路由模塊所引用,方便擴展.這里以 api.js 為例:
var UserSql = { insert : 'INSERT INTO User(id, userName, password) VALUES(?,?,?) ', query : 'SELECT * FROM user ', getUserById: 'SELECT * FROM user WHERE uid = ? ' }; module.exports = UserSql;
1.3在 API.js 中寫一個獲取 數據庫中所有user 表信息的 API。
api.js 在routers 目錄下。和 index.js ,user.js同級
var express = require('express'); var router = express.Router(); var db = require('../db/db'); //引入db var userSql = require('../db/userSql'); router.get("/getAllUsers", function (req, res, next) { var results = {}; db.query(userSql.query, [], function (err, rows) { results = rows; console.log("results: " + results.str); res.send(results); }); }); module.exports = router;
2、在瀏覽器中輸入 http://localhost:3000/api/getAllUsers,可以讀取數據庫信息,這里只是簡單的把 user表信息全部讀取。