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表信息全部读取。