Modelesq
Modelesq

Reputation: 5402

Creating a filter in an express js route

Sample json:

var jsonString = '[{"name":"Manchester GTUG","meetup":"First Monday of every month","tags":["gtug","google","manchester","madlab"]},{"name":"Manchester jQuery Group","meetup":"First Tuesday of every month","tags":["jquery","javascript","jresig","madlab"]},{"name":"Hybrid!","meetup":"First Monday of every month","tags":["jquery","javascript","jresig","madlab"]}]';

So i have my express js routes:

var list = require('./data');
var jsonData = require('../public/data/items.json');
var itemList = list.items;

exports.index = function (req, res) {
  res.render('index', {list: itemList});
};

exports.get('/items.json', function(req, res){
    res.json(jsonData);
});

What I'd like to do like below.

  1. Get my json file via url.
  2. Able to filter the amounts like so...

localhost:8000/items/?start=1&end=8 OR localhost:8000/items.json/?start=1&end=8

How would I go about achieving this?

Upvotes: 0

Views: 4075

Answers (1)

Venkat.R
Venkat.R

Reputation: 7746

Try like below in Express Router. You have to filter in your code. there is no predefined option to filter through URL.

var express = require('express');
var router = express.Router();
var jsonData = require('../public/data/items.json');

router.get('/', function(req, res, next) {
  var itemList = {};
  itemList['data'] = jsonData.data.slice(0, 27)
  res.json(itemList);
});

module.exports = router;

Reference Slice:
http://www.w3schools.com/jsref/jsref_slice_array.asp
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/slice

Upvotes: 2

Related Questions