arnaucube
arnaucube/commonroutesServerPublic Self-hosted repository
commonroutesServer/controllers/searchController.js
controllers/searchController.jsRaw
 1//File: controllers/userController.js
 2var mongoose = require('mongoose');
 3var userModel = mongoose.model('userModel');
 4var notificationModel  = mongoose.model('notificationModel');
 5var travelModel  = mongoose.model('travelModel');
 6
 7
 8/* */
 9var jwt = require('jsonwebtoken'); // used to create, sign, and verify tokens
10var express = require("express");
11var app = express();
12var config = require('../config'); // get our config file
13app.set('superSecret', config.secret); // secret variable
14
15var crypto = require('crypto');
16/* */
17
18
19exports.searchByString = function (req, res) {
20    console.log(req.params.searchstring);
21    userModel.find({
22        username: new RegExp(req.params.searchstring, "i")
23    })//perquè retorni tots els objectes que continguin l'string sense necessitat de que sigui exactament la mateixa string
24        .limit(Number(req.query.pageSize))
25        .skip(Number(req.query.pageSize) * Number(req.query.page))
26        .lean()
27        .select('username avatar')
28        .exec(function (err, users) {
29            if (err) return res.send(500, err.message);
30            travelModel.find({
31                $or:[
32                    {from: new RegExp(req.params.searchstring, "i")},
33                    {to: new RegExp(req.params.searchstring, "i")},
34                    {title: new RegExp(req.params.searchstring, "i")}
35                ]
36            })//perquè retorni tots els objectes que continguin l'string sense necessitat de que sigui exactament la mateixa string
37                .limit(Number(req.query.pageSize))
38                .skip(Number(req.query.pageSize) * Number(req.query.page))
39                .lean()
40                .select('title from to date type')
41                .exec(function (err, travels) {
42                    if (err) return res.send(500, err.message);
43                    res.json({
44                        users: users,
45                        travels: travels
46                    });
47                });//travels
48        });//users
49};