Получить HTML-страницу для связи с сервером node-xmpp/xmpp
Пожалуйста, имейте в виду, что я ОЧЕНЬ новичок во всем этом стиле HTML-кодирования javascript / node.js. В прошлом все, что я когда-либо делал с HTML, это страницы в статическом / информационном стиле.
Я пытаюсь создать веб-страницу HTML, которая будет принимать информацию, связанную с xmpp, от пользователя (адрес сервера, порт, JID пользователя, пароль, сообщения чата, JID другого пользователя и т. Д.) И направлять ее через сервер node.js на xmpp. сервер. В конечном итоге я пытаюсь взять код webrtc.io и расширить его, чтобы привязать к нему и взаимодействовать с пользователями на сервере XMPP. Пытаясь сделать это, я нашел модуль node-xmpp и "установил" его (npm install) в папку node_modules в рабочем каталоге моего проекта.
Затем я создал очень простой файл index.html (текстовые поля ввода), который принимает информацию о пользователе, а затем вызывает функции в файле javascript, который включен в файл index.html. В файле javascript я добавил функцию / вызов require const xmpp = require('node-xmpp')
, добавил var client = new xmpp.Client({[connection settings]});
а затем начал с некоторого базового обработчика строфы и других функций xmpp.
Когда я "запускаю" код в браузере, прежде чем я даже начинаю вводить информацию, я вижу, что консоль сообщает об ошибках. Сначала они были ошибками в функциях xmpp, которые я написал, поэтому я закомментировал все, чтобы new xmpp.Client({})
линия, чтобы посмотреть, будет ли она подключена. Но тогда я получил бы ошибку с cont xmpp = require('node-xmpp')
, Эта ошибка
Uncaught ReferenceError: требование не определено (анонимная функция)
Из моего ограниченного понимания всего этого html/javascript/server, я думаю, что происходит то, что клиент / браузер не знает / не имеет доступа ни к файлам node.js, ни к node-xmpp.
Это правильно? Должен ли я делать вещи по-другому? И есть ли хорошие уроки / документация, которая охватывает это?
2 ответа
Если я понимаю, что вы говорите, вы пытаетесь выполнить код узла в браузере. Исходный узел должен выполняться на сервере, а не в браузере. У вас будет два набора файлов JavaScript: те, которые вы отправляете в браузер для выполнения в браузере, и те, которые выполняются на сервере с использованием экземпляра узла. Если я неправильно понял, пожалуйста, расскажите нам немного больше о структуре вашей системы.
Функция require() неизвестна, это вызвало проблему. Я думаю, что вы, возможно, допустили некоторые ошибки, включая node.js.
Проверьте, что этот `require 'socket.io-client.js'` не работает
Вы можете найти ответ на свой вопрос.