Чтобы в общих чертах ответить на ваш вопрос: «Как мне вызвать бэкэнд-код из внешнего интерфейса?» - нет. Вы делаете запрос к маршруту, по которому выполняется ваш код, а затем отправляете ответ (вероятно, с res.json
) ответом. Нет прямого способа вызвать код, поэтому вам нужно будет сделать запрос AJAX (как вы определили).
Вы можете использовать несколько вещей. Самым простым, если вы используете современный браузер, является функция fetch
. fetch
- это низкоуровневый API для выполнения вызовов AJAX из браузера, который встроен в большинство современных браузеров.
fetch('/recent')
.then(res => res.json())
.then(myResult => { /* do what you want with the result here */ })
Подробнее о fetch
можно узнать из MDN: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API
Поскольку fetch
довольно низкоуровневый, над ним написаны различные обертки, чтобы облегчить жизнь. Я предпочитаю axios
, о котором вы можете прочитать больше на https://github.com/axios/axios. Следующий код эквивалентен axios
:
axios.get('/recent')
.then(res => res.data)
.then(myResult => { /* do what you want with the result here */ })
axios
действительно вступает в свои права, когда вы выполняете более сложные запросы. Он поддерживает пакет UMD через unpkg
- просто перетащите <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
на свою HTML-страницу, и вы получите глобальный доступ к axios
в объекте окна.