У меня есть ситуация, когда я должен отправить некоторые данные на сервер со строками запроса.
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)));
};
}
А также я должен проверить это с помощью экспресс-валидатора в моем бэкэнде.
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
вот так
localhost: 3000? &