Возврат определенного объекта JSON с помощью Express - PullRequest
0 голосов
/ 17 сентября 2018

Итак, допустим, у меня есть массивный файл JSON, и общая структура примерно такая:

{
   "apples": { complex object },
   "oranges": { complex object },
   "grapes": { complex object }
}

Есть ли какой-то способ специально нацелиться на объект, возвращаемый при использовании Express?Как, скажем, если бы кто-то сделал простой запрос get на мой сервер, он бы возвращал конкретно данный объект (ы).Я знаю, что синтаксис и концепция в данном случае совершенно неверны, но из-за отсутствия лучшего способа сказать это, что-то вроде ...

let testData = 'testdata.json';
app.get('/thing', res => {
   res.json(testData.oranges);
}

Я знаю, что вы можете вернуть весь файл, но это добавляетв данном случае это достаточно большое время загрузки, и в данном конкретном случае это нецелесообразно.

Или, в качестве альтернативы, было бы лучше, если бы узел анализировал файл JSON и разделял его на apple.json, oranges.jsonи т.д. файлы для использования?Пытаясь понять A, лучший способ сделать что-то подобное, и B, самый эффективный способ перевести это в практическое приложение для проекта среднего размера.

Любые мысли или советы по этому вопросу, даже еслиэто рекомендация библиотеки - будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Это запрос GET для некоторых данных, и, по сути, поскольку файл JSON можно использовать как хранилище ключей / значений для запроса требуемых данных ответа.

Если параметр запроса для указания желаемого ключа для возвращаемого объекта равен part, тогда будет работать следующий пример:

const testData = require('./testdata.json');

app.get('/thing', (req, res) => res.json(testdata[req.query.part]);

Запрос /thing?part=apples вернет testdata.apples в ответе.

0 голосов
/ 18 сентября 2018

Это должно сработать, если вы сделаете POST-запрос, заботящийся о полезной нагрузке конкретной ' вещи ', а затем вернете объект, основанный на этой вещи. Пример:

let testData = {
   "apples": { complex object },
   "oranges": { complex object },
   "grapes": { complex object }
};
app.post('/route', (req, res) => {
   thing = req.body.thing;
   res.json(testData[thing]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...