javascript - 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);
});
};
解决方案
推荐阅读
- python - Django ORM“|” 操作员返回重复项
- python - Python忽略如果
- python - My binary search function returns none when target not found despite me specifiying return value to be -1
- python - Matplotlib 散点图,带有跨子图的标准化颜色图
- python - 我无法在 python django 中使用 selenium webdriver 选择选项
- arm - 将 Arm A9 Cortex 的小写转换为大写代码
- java - spring boot 字段自动装配服务返回 null
- python - 不断减少列表中的值,直到它们都为 0
- c++ - 有没有人遇到这个问题:qtmqtt/mkspecs/modules-inst/qt_lib_mqtt.pri:没有这样的文件或目录?
- php - 如何根据发布日期自动更新 acf 字段?