Локальное node.js приложение отлично работает на локальном хосте, но не из внешнего доступа - PullRequest
1 голос
/ 03 апреля 2020

У меня на локальном компьютере есть приложение, которое прекрасно работает, если я получаю к нему доступ через http://localhost: 8080 . Я перенаправил порт на моем маршрутизаторе. Однако, когда я получаю доступ к http://some-dynamic-dns: 8080 , я вижу только пустой сайт с загруженным фоновым изображением (в основном то, что находится в /client/index.html), но приложение не ' t run.

Мое приложение основано на этом руководстве: https://www.freecodecamp.org/news/how-to-build-a-multiplayer-card-game-with-phaser-3-express-and-socket-io/

Есть ли какие-либо предложения о том, как разрешить пользователям подключаться из Интернета к моему локальному компьютеру?

сервер. js:

const express = require('express');
const app = express();
const http = require('http').createServer(app);
const io = require('socket.io')(http);

app.listen(8080);
app.use(express.static('./client/'));

структура папок:

my-app-folder
    client
    node-modules
    server.js

пакет. json:

{
  "name": "jass",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "nodemon server.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.17.1",
    "nodemon": "^2.0.2",
    "socket.io": "^2.3.0"
  }
}

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 12 апреля 2020

Если вы не получаете никаких ошибок на странице, если ваш сервер работает на linux, убедитесь, что у chmod есть права доступа для вашего веб-сайта. Это может быть причиной проблемы.

- это код вашей игры фазера в вашем файле html или в собственном файле js?

0 голосов
/ 03 апреля 2020

Могу ли я узнать, как вы пытаетесь получить доступ к этой странице из общедоступной сети c? Если вы пытаетесь получить доступ из домена, в этом случае у вас должен быть publi c IP.

. Вы можете проверить следующие обходные пути:

  1. проверьте правильность публикации c IP указал из домена.
  2. проверьте, открыт ли порт из брандмауэра. Если он не блокируется брандмауэром.
  3. проверьте правильность правила переадресации маршрутизатора / порта.
...