arnaucube
arnaucube/commonroutesServerPublic Self-hosted repository
commonroutesServer/controllers/searchController.js
controllers/searchController.jsRaw
 1var config = require('../config');
 2var pageSize=config.pageSize;
 3
 4var jwt = require('jsonwebtoken'); // used to create, sign, and verify tokens
 5var express = require("express");
 6var app = express();
 7app.set('superSecret', config.secret); // secret variable
 8
 9var crypto = require('crypto');
10var mongoose = require('mongoose');
11var userModel = mongoose.model('userModel');
12var notificationModel  = mongoose.model('notificationModel');
13var travelModel  = mongoose.model('travelModel');
14
15exports.searchByString = function (req, res) {
16    console.log(req.params.searchstring);
17    userModel.find({
18        username: new RegExp(req.params.searchstring, "i")
19    })//to return all the objects containing the string, having exactly the same string
20        .limit(pageSize)
21        .skip(pageSize * Number(req.query.page))
22        .lean()
23        .select('username avatar')
24        .exec(function (err, users) {
25            if (err) return res.send(500, err.message);
26            travelModel.find({
27                $or:[
28                    {'from.name': new RegExp(req.params.searchstring, "i")},
29                    {'to.name': new RegExp(req.params.searchstring, "i")},
30                    {title: new RegExp(req.params.searchstring, "i")}
31                ]
32            })//to return all the objects containing the string, without need of having the same string
33                .limit(pageSize)
34                .skip(pageSize * Number(req.query.page))
35                .lean()
36                .select('title from to date type')
37                .exec(function (err, travels) {
38                    if (err) return res.send(500, err.message);
39                    res.json({
40                        users: users,
41                        travels: travels
42                    });
43                });//travels
44        });//users
45};