generator-nitro
Version:
Yeoman generator for the nitro frontend framework
42 lines (34 loc) • 882 B
JavaScript
;
/**
* Usage:
* /api/countries/search
*
* To get results you have to provide a search query:
* /api/countries/search?query=sw
*/
const path = require('path');
const fs = require('fs');
const utils = require('./helpers/utils.js');
function search(req, res, next) {
// validation
if (!req.query.query) {
return res.json([]);
}
// load typeahead data
const data = JSON.parse(fs.readFileSync(path.join(__dirname, './data/countries.json')));
let items = data;
// title search
if (req.query.query) {
const regex = new RegExp(req.query.query, 'i');
items = items.filter((item) => regex.test(item.name) || regex.test(item.code));
}
setTimeout(
() => {
return res.json(items);
},
utils.getRandomInt(250, 1000),
);
}
module.exports = (app) => {
app.route('/api/countries/search').get(search);
};