it-swarm.com.ru

Отправка файла JSON на сервер Express с использованием JS

Я довольно новичок в JS, и у меня есть файл JSON, который мне нужно отправить на мой сервер (Express), который я могу затем проанализировать и использовать его содержимое в веб-приложении, которое я создаю. 

Вот что у меня сейчас:

  • файл JSON с именем data.json
  • экспресс-сервер настроен на локальном хосте
  • какой-то вый код:

    app.get ('/ search', function (req, res) { res.header ("Content-Type", 'application/json'); res.send (JSON.stringify ({/ data) .json /}));.__}).

В приведенном выше коде я просто пытаюсь отправить файл на localhost: 3000/search и посмотреть мой файл JSON, но все, что я получаю, когда я иду по этому пути, это {}. Кто-нибудь может объяснить?

Любая помощь будет очень цениться. Большое спасибо заранее.

Cheers, Тео

Пример фрагмента из data.json:

[{
    "name": "Il Brigante",
    "rating": "5.0",
    "match": "87",
    "cuisine": "Italian",
    "imageUrl": "/image-0.png"
}, {
    "name": "Giardino Doro Ristorante",
    "rating": "5.0",
    "match": "87",
    "cuisine": "Italian",
    "imageUrl": "/image-1.png"
}]
5
Theo Strauss

Просто убедитесь, что вам нужен правильный файл в качестве переменной, а затем передайте эту переменную в ваш res.send!

const data = require('/path/to/data.json')

app.get('/search', function (req, res) {
  res.header("Content-Type",'application/json');
  res.send(JSON.stringify(data));
})

Кроме того, я предпочитаю использовать res.json , поскольку он устанавливает заголовок автоматически.

app.get('/search', function (req, res) {
  res.json(data);
})
8
Khauri McClain

Попробуйте res.json (data.json) вместо res.send (...

2
user5480949

Другой вариант - использовать sendFile и установить заголовок типа контента.

app.get('/search', (req, res) => {
    res.header("Content-Type",'application/json');
    res.sendFile(path.join(__dirname, 'file_name.json'));
})

Код предполагает, что файл находится в том же каталоге, что и код JS. Этот ответ объясняет, как это работает.

1
Ian

Сначала прочитайте файл, а затем отправьте JSON клиенту.

fs.readFile('file_name.json', 'utf8', function (err, data) {
  if (err) throw err;
  obj = JSON.parse(data);
  res.send(JSON.stringify(obj));
});
0
Arpit Solanki