Не могу использовать собственный restClient для замены id на _id.Ошибка синтаксического анализа: неожиданный токен - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь изменить restClient для поддержки mongoDB (замените id на _id).

Это документация https://marmelab.com/admin-on-rest/FAQ.html#can-i-have-custom-identifiers-primary-keys-for-my-resources. Я пробовал разные варианты, но с этим он показывает "Неожиданный токен"

Это скриншот ошибки

const convertHTTPResponseToREST = (response, type, resource, params) => {
        const { headers, json } = response;
        switch (type) {
            case GET_LIST:
                return {
                    data: json.map(resource => { ...resource, id: resource._id } ), // here an error with "...resource"
                    total: parseInt(headers.get('content-range').split('/').pop(), 10),
                };
            case UPDATE:
            case DELETE:
            case GET_ONE:
                return { ...json, id: json._id };
            case CREATE:
                return { ...params.data, id: json._id };
            default:
                return json;
        }
    };


 <Admin
         title="Dashboard"
         restClient={convertHTTPResponseToREST('/api')}>
 </Admin>

Когда я использую jsonServerRestClient (), это работает. Может быть, есть другой способ изменить id на _id?

1 Ответ

0 голосов
/ 27 мая 2019

Отредактированный ответ:

Вам необходимо заменить:

data: json.map(resource => { ...resource, id: resource._id }),

от

data: json.map(resource => ({ ...resource, id: resource._id })),

Обратите внимание на дополнительные скобки вокруг возвращаемого объекта

...