Как я могу сделать свой локальный сервер доступным из внешних запросов? - PullRequest
0 голосов
/ 06 февраля 2019

Я использую простой сервер nodejs на своем локальном хосте через порт: 3434

const cors = require('cors');
const app = require('express')();
const bodyParser = require('body-parser')

app.use(bodyParser.json())
    app.use(bodyParser.urlencoded({ extended: true }));
    app.use(cors());

    app.get('/ping/:anystring', (req, res) => {
            console.log(req.params['anystring']);
            res.send({
                anystring: req.params['anystring']
            })
        });

    app.listen(3434);

, и я хотел бы выполнить вызов ajax с моего веб-сайта.Я попытался настроить переадресацию портов маршрутизатора следующим образом:

- name service: mylocalserver   
- porta ragnge: 3434    
- local ip: 192.168.1.19
- local port: 3434
- protocol: BOTH

, но когда я это сделал

fetch(publicIP:3434/ping/hello).then(res => {
  console.log(res);
})

, я получаю ошибка 404

ВозможноКто-нибудь, помогите мне сказать, что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Вы можете использовать локальный туннель Он сопоставляет ваш порт на локальном хосте с веб-адресом без необходимости изменения вашего кода

0 голосов
/ 06 февраля 2019

Вы не можете получить доступ к вашему локальному серверу за пределами вашей локальной сети, если вы не создадите туннель.Я использую ngrok .

Для ngrok есть пакет npm , но я не могу заставить его работать, поэтому я просто вручную запускаю сервер с терминала всякий раз, когдаМне нужно протестировать API.

Также вам потребуется http .

добавьте это в свой app.js:

const http = require('http');

const newPort = //your port here (needs to be a different port than the port your app is currently using)

const server = http.createServer(function(req, res) {

  console.log(req); //code to handle requests to newPort
  res.end('Hello World);
});

app.listen(newPort, function() {
    console.log(`ngrok listening on ${newPort}`);
});

Сейчасв терминале, после установки ngrok , используйте это ngrok http newPort, где newPort = ваш порт

Вы можете просмотреть запросы, отправленные на ваш сервер, перейдя на localhost:4040 (это может измениться в зависимости от вашегоsystem)

Чтобы отправить запрос на локальный хост, сделайте следующее:

- name service: mylocalserver //not sure
- porta ragnge: ???
- local ip: //ngrok gives you a url in terminal when you start the server (I'm not sure if you can reference an IP)
- local port: newPort
- protocol: http //(ngrok gives you a different url for http and https)
...