我有一种情况,我必须使用查询字符串向服务器发送一些数据。
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?&