У меня есть приложение реагировать + узел, который подключается к БД.На внешнем интерфейсе реагирует через axios, на внутреннем - mongoose подключается к MongoDB на Mlab.
У меня есть различные вызовы API, которые работают просто отлично, но с одним с несколькими параметрами у меня есть проблема - функция реализации APIпросто не вызывается.
Интерфейсный вызов
axios.get(host_url + '/data/byuser', {params: {
uid: this.state.uid,
company: this.state.user_company,
access_level: this.state.user_access
}}
.then(res => {
if(res.status === 200) {
// do stuff
})
.catch( error => {
console.log(error.toString());
})
Фрагмент роутера (текущий)
app.route('/data/byuser')
.get(getDataByManID);
Также пробовал
app.route('/data/byuser')
.get( (req, res) => {
getDataByManID(req, res);
});
И
app.get('/data/byuser', getDataByManID);
Реализация API
module.exports.getDataByManID = (req, res) => {
console.log('UID: ' + req.params.uid);
console.log('Company: ' + req.params.company);
console.log('Access level: ' + req.params.access_level);
DataColl.find({
$or: [
{
$and: [{
'uid': req.params.uid,
'company': req.params.company
}]
},
{
$and: [{
'company': req.params.company,
'access_level': {$lt: req.params.access_level}
}]
}
]
}, function(err, dataItem) {
if(err) {
res.send(err);
} else if(dataItem.length === 0) {
res.send(404);
} else {
res.json(dataItem);
}
});
};
console.log
s в getDataByManID()
просто для того, чтобы знать, что эта функция вызывается, но вся проблема в том, что она этого не делает.Кажется, что пути разработаны.Почтальон дает правильный ответ для всех других запросов с одним параметром get или запросами post, но для этого запроса 404, однако это не должно произойти, поскольку в базе данных есть записи, которые будут возвращены для этого запроса.По крайней мере, console.log
с должны были сработать.
Что я делаю не так?