Lowdb - 用一個json檔案來當資料庫吧

Lowdb是一個小型的資料庫,把所有的資料都存在一個json檔裡,非常的輕巧,但比較適合小型專案
我們這次練習就使用Lowdb來實作http的CRUD吧!

參考資料


先用npm 安裝套件

npm install lowdb --save
npm install uuid --save

在js檔最前面引用這些套件

var low = require('lowdb');
var uuid = require('uuid'); //自動產生id的套件
var db = low('db.json');

如果你的db.json檔是空的,則預設塞入users: []這筆資料

db.defaults({ users: [] })
    .write();

GET 取得使用者資料

取得所有使用者資料

db.get('users').value();

依據offset=2,limit=3,依照age排序由小到大的條件 取得使用者資料

db.get('users').slice(2).take(3).orderBy('age','asc').value();

根據 id 取得使用者資料

db.get('users')
.find({ id: "d477193a-9546-42d2-bd38-342077b39f50" })
.value();

POST 新增使用者資料

db.get('users')
    .push({ name: "Allen", age : 18 })
    .last()
    .assign({ id: uuid() })
    .write();

PUT 更新使用者資料

db.get('users')
    .find({ id: "d477193a-9546-42d2-bd38-342077b39f50" })
    .assign({ name: "John" , age:19 })
    .write();

DELETE 刪除使用者資料

db.get('users')
   .remove({ id: "298208ab-c1e5-4ef3-a202-fcd3fc05ea06" })
   .write();

結合 Express 的 Restful API 與 Lowdb

結合後的程式碼如下,請繼續完成POST, PUT, DELETE的部分

app.get('/users', function (req, res) {

    var limit = req.query.limit;
    var offset = req.query.offset;
    var users = db.get('users');

    if (offset) { users = users.slice(offset) }
    if (limit) { users = users.take(limit) }

    res.send(users.value());
});
app.get('/users/:id', function (req, res) {
    var user =
        db.get('users')
            .find({ id: req.params.id })
            .value();

    res.send(user);
});

results matching ""

    No results matching ""