Update lowdb and underscore-db

This commit is contained in:
Typicode
2015-06-15 16:33:28 +02:00
parent 60a21e685b
commit 09d2094593
2 changed files with 14 additions and 13 deletions

View File

@ -15,12 +15,12 @@
"express": "^4.9.5", "express": "^4.9.5",
"got": "^1.2.2", "got": "^1.2.2",
"lodash": "^3.9.2", "lodash": "^3.9.2",
"lowdb": "^0.8.1", "lowdb": "^0.9.0",
"method-override": "^2.1.2", "method-override": "^2.1.2",
"morgan": "^1.3.1", "morgan": "^1.3.1",
"node-uuid": "^1.4.2", "node-uuid": "^1.4.2",
"pluralize": "^1.1.2", "pluralize": "^1.1.2",
"underscore-db": "^0.8.0", "underscore-db": "^0.9.0",
"update-notifier": "^0.2.2", "update-notifier": "^0.2.2",
"yargs": "^1.3.1" "yargs": "^1.3.1"
}, },

View File

@ -2,17 +2,11 @@ var express = require('express')
var methodOverride = require('method-override') var methodOverride = require('method-override')
var bodyParser = require('body-parser') var bodyParser = require('body-parser')
var _ = require('lodash') var _ = require('lodash')
var _db = require('underscore-db')
var low = require('lowdb') var low = require('lowdb')
var pluralize = require('pluralize') var pluralize = require('pluralize')
var utils = require('./utils') var utils = require('./utils')
// Add underscore-db methods to lowdb
low.mixin(require('underscore-db'))
// Override underscore-db's createId with utils.createId
// utils.createId can generate incremental id or uuid
low.mixin({createId: utils.createId})
module.exports = function (source) { module.exports = function (source) {
// Create router // Create router
var router = express.Router() var router = express.Router()
@ -31,6 +25,13 @@ module.exports = function (source) {
db = low(source) db = low(source)
} }
// Add underscore-db methods to db
db.mixin(_db)
// Override underscore-db's createId with utils.createId
// utils.createId can generate incremental id or uuid
db.mixin({createId: utils.createId})
// Expose database // Expose database
router.db = db router.db = db
@ -147,7 +148,7 @@ module.exports = function (source) {
var _embed = req.query._embed var _embed = req.query._embed
var id = utils.toNative(req.params.id) var id = utils.toNative(req.params.id)
var resource = db(req.params.resource) var resource = db(req.params.resource)
.get(id) .getById(id)
if (resource) { if (resource) {
// Clone resource to avoid making changes to the underlying object // Clone resource to avoid making changes to the underlying object
@ -196,7 +197,7 @@ module.exports = function (source) {
} }
var resource = db(req.params.resource) var resource = db(req.params.resource)
.update(utils.toNative(req.params.id), req.body) .updateById(utils.toNative(req.params.id), req.body)
if (resource) { if (resource) {
res.jsonp(resource) res.jsonp(resource)
@ -207,13 +208,13 @@ module.exports = function (source) {
// DELETE /:resource/:id // DELETE /:resource/:id
function destroy (req, res, next) { function destroy (req, res, next) {
db(req.params.resource).remove(utils.toNative(req.params.id)) db(req.params.resource).removeById(utils.toNative(req.params.id))
// Remove dependents documents // Remove dependents documents
var removable = utils.getRemovable(db.object) var removable = utils.getRemovable(db.object)
_.each(removable, function (item) { _.each(removable, function (item) {
db(item.name).remove(item.id) db(item.name).removeById(item.id)
}) })
res.status(200).jsonp({}) res.status(200).jsonp({})