Я управляю одним видом клиентского запроса, начиная с '/ js /', что означает корневую папку на стороне сервера или, возможно, будет находиться в '/ public/js /' для дальнейшего использования. Хорошо, проблема, я получил это сообщение:Запрос запроса клиента ответа NodeJs другому
//server side
GET /js/socket.io/socket.io.js 304 7ms
// client side
Uncaught ReferenceError: require is not defined
Uncaught ReferenceError: io is not defined
[х] источник
// index.html
<script src="/js/socket.io/socket.io.js"></script>
// app.js
app.get('/js/*', function (req, res) {
res.sendfile(__dirname + req.url.substr('/js'.length));
});
Но это работает, когда я меняю фиксированному пути.
[о] Источник
// index.html
<script src="/socket.io/socket.io.js"></script>
// app.js
app.get('/socket.io/socket.io.js', function (req, res) {
res.sendfile(__dirname + '/socket.io/socket.io.js');
});
Это своего рода странно, не так ли? Может ли кто-нибудь выяснить, где это неправильно?
Большое спасибо.
появляется ошибка в стороне клиента заключается в следующий: неперехваченного ReferenceError: требуют не определен неперехваченного ReferenceError: ИО не определен но у успешного случая нет проблемы. – Kevin
Похоже, вы пытаетесь использовать серверную версию 'socket.io.js' в клиенте. 'socket.io' устанавливает собственный обработчик для'/socket.io/socket.io.js', поэтому вам не нужно создавать обработчик для этого кода на стороне сервера (см. http://socket.io/# как использовать) – robertklep
Спасибо, я удалил этот обработчик и работает. Но мне все еще любопытно, что первый случай действительно отправляет файл, расположенный в /socket.io/socket.io.js на стороне сервера. Это означает, что это так же, как и второй случай, не так ли? – Kevin