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