Используйте Mongoose, чтобы найти из Mongo, но вернуть пустой массив - PullRequest
0 голосов
/ 23 сентября 2018

Новичок в Node.JS и Mongoose.

В Почтальоне я могу получить ответ с помощью '/movies/title/:movieTitle' или '/movies/genre/:movieGenre', но не могу получить правильный запрос (пустой массив) с помощью '/access/:inputSearch'.

Это точно не проблема с моей БД (тест на Монго уже).

appModel.js

'use strict';
var mongoose = require('mongoose');
var Schema = mongoose.Schema;


var movies = new Schema({
  MovieID: String,
  Title: String,
  Genres: String
});

var access = new Schema({
  Address: String,
  Timestamp: String,
  Request: String
});

module.exports = mongoose.model('access', access);
module.exports = mongoose.model('movies', movies);

appRouter.js

'use strict';
module.exports = function(app) {
  var mangoCollc = require('../controllers/appController');

  app.route('/movies/title/:movieTitle').get(mangoCollc.search_all_movies_by_title);

  app.route('/movies/genre/:movieGenre').get(mangoCollc.search_all_movies_by_genre);

  app.route('/access/:inputSearch').get(mangoCollc.search_all_access);
};

appController.js

'use strict';

var mongoose = require('mongoose');
var movies = mongoose.model('movies');
var access = mongoose.model('access');

exports.search_all_access = function(req, res) {
  access.find(
    {Address: "127.0.0.1"},
    function(err, ret) {
    if (err)
      res.send(err);
    res.json(ret);
  })
  .limit(30);
};

exports.search_all_movies_by_title = function(req, res) {
  movies.find(
    {$or: [
      {Title: { $regex: req.params.movieTitle }}
    ]},
    function(err, ret) {
    if (err)
      res.send(err);
    res.json(ret);
  })
  .sort({Title: 1})
  .limit(20);
};

exports.search_all_movies_by_genre = function(req, res) {
  movies.find(
    {Genres: { $regex: req.params.movieGenre }},
    function(err, ret) {
    if (err)
      res.send(err);
    res.json(ret);
  })
  .sort({Title: 1})
  .limit(20);
};

server.js

var express = require('express'),
  app = express(),
  port = process.env.PORT || 3000,
  mongoose = require('mongoose'),
  MangoWork = require('./api/models/appModel'), //created model loading here
  bodyParser = require('body-parser');
  
// mongoose instance connection url connection :27017
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://localhost/info7250'); 


app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());


var routes = require('./api/routes/appRoutes'); //importing route
routes(app); //register the route


app.listen(port);


console.log('server started on: ' + port);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...