You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.8 KiB

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