mirror of
https://github.com/typicode/json-server.git
synced 2025-07-28 12:43:18 +08:00
replaced underscore with lodash, expanded querying capability to search through nested objects and arrays
This commit is contained in:
@ -14,12 +14,12 @@
|
||||
"errorhandler": "^1.2.0",
|
||||
"express": "^4.9.5",
|
||||
"got": "^1.2.2",
|
||||
"lodash": "^3.9.1",
|
||||
"lowdb": "^0.7.1",
|
||||
"method-override": "^2.1.2",
|
||||
"morgan": "^1.3.1",
|
||||
"node-uuid": "^1.4.2",
|
||||
"pluralize": "^1.1.2",
|
||||
"underscore": "^1.5.2",
|
||||
"underscore-db": "^0.8.0",
|
||||
"update-notifier": "^0.2.2",
|
||||
"yargs": "^1.3.1"
|
||||
|
@ -1,7 +1,7 @@
|
||||
var express = require('express')
|
||||
var methodOverride = require('method-override')
|
||||
var bodyParser = require('body-parser')
|
||||
var _ = require('underscore')
|
||||
var _ = require('lodash')
|
||||
var low = require('lowdb')
|
||||
var pluralize = require('pluralize')
|
||||
var utils = require('./utils')
|
||||
@ -78,7 +78,7 @@ module.exports = function (source) {
|
||||
array = db(req.params.resource).filter(function (obj) {
|
||||
for (var key in obj) {
|
||||
var value = obj[key]
|
||||
if (_.isString(value) && value.toLowerCase().indexOf(q) !== -1) {
|
||||
if(utils.deepQuery(value, q)){
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
25
src/utils.js
25
src/utils.js
@ -1,4 +1,4 @@
|
||||
var _ = require('underscore')
|
||||
var _ = require('lodash')
|
||||
var uuid = require('node-uuid')
|
||||
var pluralize = require('pluralize')
|
||||
|
||||
@ -66,8 +66,29 @@ function getRemovable (db) {
|
||||
return removable
|
||||
}
|
||||
|
||||
function deepQuery(value, q) {
|
||||
if(value) {
|
||||
if(_.isArray(value)) {
|
||||
for(var i = 0; i < value.length; i++) {
|
||||
if(deepQuery(value[i], q)) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
} else if(_.isPlainObject(value)) {
|
||||
for(var k in value) {
|
||||
if(deepQuery(value[k], q)) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
} else if(value.toString().toLowerCase().indexOf(q) !== -1) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
toNative: toNative,
|
||||
createId: createId,
|
||||
getRemovable: getRemovable
|
||||
getRemovable: getRemovable,
|
||||
deepQuery: deepQuery
|
||||
}
|
||||
|
Reference in New Issue
Block a user