首页 > 解决方案 > NodeJS Rest API 发送一个空数组

问题描述

我正在尝试获取在特定类别、子类别和国家/地区创建的帖子。(搜索机制可能仅适用于类别、类别和子类别、类别和国家等...)我在我的帖子控制器中编写了这个函数它响应有一个空数组,但是当我将其更改为 this(第二个函数)函数时,它开始工作,但它只响应在类别下创建的帖子。

var async        = require('async');
var PostDal      = require('../dal/post');
var PreferencesDal      = require('../dal/preference');
var CategoryDal        = require('../dal/category');
var SubCategoryDal           = require('../dal/subCategory');
var CommentDal          = require('../dal/comment');
var UserDal           = require('../dal/user');
var Post           = require('../models/post');

exports.getPosts = function(req,res,next){
    let last_id = req.query.last_id;      
    var category = req.query.category;
    var subCategory   = req.query.subCategory;
    var country   = req.query.country;
    var query  = {};
    if (category) {
        query.category = category;
    } 
    if (subCategory) {
        query.subCategory = subCategory;
    }
    if(country) {
        query.country = country;
    }
    if(last_id)
        query._id = { $lt: last_id };

    let page = req.query.page * 1 || 1;
     let limit = req.query.per_page * 1 || 10;

     let queryOpts = {
        sort:{created_at:-1},
         page: page,
         limit: limit
     };
    PostDal.getCollection(query, queryOpts, function getPosts(err,docs){
        if(err){
            return next(err);
        }
        res.json(docs);
    });
};


//Second function
exports.getPosts2 = function(req,res,next){
    let last_id = req.query.last_id;      
    var category = req.query.category;
    var subCategory   = req.query.subCategory;
    var country   = req.query.country;
    var query  = {};
    if (category) {
        query.category = category;
    } 
    if (subCategory) {
        query.subCategory = subCategory;
    }
    if(country) {
        query.country = country;
    }
    if(last_id)
        query._id = { $lt: last_id };

    let page = req.query.page * 1 || 1;
     let limit = req.query.per_page * 1 || 10;

     let queryOpts = {
        sort:{created_at:-1},
         page: page,
         limit: limit
     };
    PostDal.getCollection({category:query.category:query}, queryOpts, function getPosts2(err,docs){
        if(err){
            return next(err);
        }
        res.json(docs);
    });
};`


//here is getCollections function from dal folder
exports.getCollection = function getCollection(query, opt, cb) {
 Post.find(query, {}, opt)
 .populate(population)
    .exec(function getpostssCollection(err, doc) {
      if(err) {
        return cb(err);
      }

     return cb(null, doc);

  });
};

标签: javascriptnode.jsapi

解决方案


推荐阅读