Как мне передать JSON-файл из серверного скрипта app.js, написанного на Node.js, в клиентский скрипт function.js для последующей обработки и отображения в HTML?

  • 8 августа 2023 г. 13:13
Ответы на вопрос 2
Если вы храните свои данные в файле формата JSON на сервере, вы можете загрузить и отправить их через свою серверную маршрутизацию (Express).

Приведу пример:

Конечная точка удаленного сервера для передачи JSON-файла:

app.js (серверный скрипт на Node.js)

```javascript
var express = require('express');
var app = express();
var fs = require('fs');

app.get('/getJSONData', function(req, res) {
    fs.readFile('data.json', 'utf8', function(err, data){
       if(err) throw err;
       res.send(JSON.parse(data));
    });
});

app.listen(3000, function() {
    console.log('App listening on port 3000');
});
```
Данный код создает конечную точку '/getJSONData', которую ваш клиентский js-файл может запрашивать, чтобы получить содержимое файла 'data.json'.

Затем в клиентском файле JavaScript вы можем получить эти данные с помощью `fetch()` или jQuery `$.get()`, или других библиотек для выполнения ajax-запросов.

function.js (клиентский скрипт)

fetch() API:

```javascript
fetch('http://localhost:3000/getJSONData')
    .then(response => response.json())
    .then(data => console.log(data));
```
jQuery:

```javascript
$.get('http://localhost:3000/getJSONData', function(data) {
    console.log(data);
});
```
Пожалуйста, убедитесь, что ваш сервер настроен для обработки CORS (Cross-Origin Resource Sharing), если ваш клиент и сервер работают на разных доменах. Если нет, вам нужно будет обработать это на сервере.
fetch('data.json') выполняется на компьютере пользователя внутри его браузера, чтобы получить данные с сервера. Но если вы хотите сохранить файл на сервере и затем передать его клиенту, вам нужно создать обработчик запросов на сервере, например, используя endpoint '/getJsonData'. В этом обработчике вы можете написать код, который будет читать файл и возвращать его клиенту в формате JSON. Таким образом, клиент сможет получить данные, обратившись по этому URL.

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