React + Node获取具有多个参数的请求将不起作用

时间:2018-12-04 04:40:56

标签: node.js reactjs mongodb mongoose axios

我有一个连接到数据库的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

我在做什么错了?

0 个答案:

没有答案