Как перенести массивы из Node JS в HTML
Я запрашиваю данные из базы данных SQL Azure, следуя документации по документам Microsoft, используя NodeJS.
Теперь, когда у меня есть данные, я планирую визуализировать их с помощью Plotly.js в простом HTML. Но, честно говоря, я новичок в NodeJS и не знаю, как перенести данные (которые я хранил в JS-массивах) из скрипта Node JS и перехватить их в HTML (точнее, перехватить в Javascript код в<script></script>
теги, чтобы я мог заполнить визуализацию Plotly.js).
Это было бы что-то вроде этого:
На скрипте Node.js:
- Получить данные из Azure (готово)
- Передайте данные в HTML или где-нибудь, где HTML может их поймать
В разметке HTML:
<html>
<head>
</head>
<body>
<script>
// CATCH THE DATA RIGHT HERE
// PROCESS THE DATA USING PLOTLY.JS
</script>
</body>
</html>
Я просматривал Restify и ExpressJS, но искренне я не получаю это так много, и я не нашел пример, который ловит данные в "javascript of html".
Я не прошу код (я не хочу, чтобы меня неправильно поняли. Тем не менее, какой-то пример был бы потрясающим), но я хотел бы знать, где я могу найти что-то похожее, инструмент, библиотеку или что-то, что могло бы помочь мне добиться этого.
Спасибо!
3 ответа
Сначала вместо создания сервера и API для обслуживания этих данных JSON вы можете вместо этого создать файл json с помощью модуля node fs, например:
const fs = require('fs');
//example of the data you got from the Azure SQL database
const data = [ 1, 2, 3, 4, 5, 6];
fs.writeFileSync('data.json', JSON.stringify(data));
Это создаст файл в текущем каталоге.
затем в своем HTML вы можете импортировать этот файл JSON, используя jQuery:
$.getJSON('data.json',function(data){
//display your data however you want.
console.log(data);
})
Это должно работать без особых хлопот.
А если вы хотите выбрать более длинный маршрут, вы можете установить экспресс и написать небольшой экспресс-сервер с конечной точкой маршрута, которая обслуживает данные.
Я бы порекомендовал сделать то, что вы хотите, в два этапа:
- Реализуйте выделенную конечную точку для получения данных, которые должны быть визуализированы в виде строки JSON (
GET /data/?whatever=1234
) - Запрограммируйте скрипт Plotly.js, чтобы запрашивать необходимые ему данные через AJAX и показывать его, как только DOM будет готов.
Основная идея заключается в том, что вы создаете ресурс для данных и URL для получения этого ресурса. Составление графика данных - это всего лишь одно приложение; Там может быть много других вещей, которые вы можете захотеть сделать с этим в будущем.
В C# у вас будет контроллер MVC, который будет заполнять шаблон данными, полученными из модели. Вы можете сделать то же самое с NodeJS/Express и движком шаблонов. В этом случае вы должны заполнить шаблон с помощью JavaScript (nodejs) перед отправкой в браузер.
Другим вариантом будет использование структуры SPA, в которой вы используете SPA браузера для выполнения запросов AJAX на данные и отправки этих данных из службы nodejs/express REST.
Вы вероятно не сделали бы смесь обоих.
Если вы хотите получить отличную отправную точку, которая бы "напоминала" традиционное веб-приложение, изучите генератор приложений Express: https://expressjs.com/en/starter/generator.html
Если даст вам все, что вам нужно, и документы ответят на ваш вопрос напрямую.