我有一个连接到数据库的react + node应用程序。在前端,React通过axios运行,在后端,Mongoose连接到Mlab上的MongoDB。
我有不同的api调用可以很好地工作,但是对于具有多个参数的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
中的 getDataByManID()
s只是知道该函数已被调用,但整个问题是它没有被调用。
似乎已经解决了路径。邮递员使用一个get参数或post请求对所有其他请求给出适当的响应,但是对于此请求则返回404,但是,由于在db中将为该查询返回的条目,因此不应这样做。至少应该触发console.log
个
我在做什么错了?