0

我有一种情况,我必须使用查询字符串向服务器发送一些数据。

import * as actions from './actions';
import AXIOS from 'services/axios';

export function getLastEvent({campaign_name, with_campaign} = {}) {
    return dispatch => {

        return AXIOS.get(`/events/last-event?${campaign_name && `campaign_name=${campaign_name}`}&${with_campaign && `with_campaign=${with_campaign}`}`)
            .then(response => dispatch(actions.getLastEventResponse(response)));
    };
}

而且我还必须在我的后端使用 express-validator 进行检查。

router.get('/last-event', roleChecker('customer'), [
    query('with_campaign').optional().isBoolean(),
    query('campaign_name').optional(),
], async (req, res, next) => {
    try {
        // .... some actions
        return res.status(OK).send(result);
    } catch (err) {
        next(err);
    }
});

如您所见,我正在验证with_campaign是否是Boolean。从我的客户端来看,有些情况我不发送with_campaign选项。如何最好地构造我的URL不那么长?如果我没有这两个属性,那么我会得到URL这样的

本地主机:3000?&

4

0 回答 0