Как запустить несколько экспресс-серверов на разных портах? - PullRequest
0 голосов
/ 27 декабря 2018

Изучение узла с прошлой недели и немного подержали узел и экспресс.Но сейчас я столкнулся с проблемой.Я пытаюсь запустить несколько экспресс-серверов на другом порту и хочу, чтобы они возвращали ответ через 10 секунд.После запуска программы серверы работают нормально, но когда я нажимаю http://localhost:3000 или любой из URL-адреса сервера, соблюдая следующее:
- на стороне клиента я получаю правильный ответ от всех серверов через 10 секунд
- сервер входит в бесконечный цикл и непрерывно печатает «возвращающие данные ...» после задержки 10 секунд

Я попытался использовать функцию, используя файл js для экспорта сервера и другой класс, импортирующий его и вызывающийвнутри для петли.Но сервер постоянно печатает «возвращающие данные ...» после задержки в 10 секунд.Ниже мой код:

var express = require('express');

const data = '{"key":"value"}';
const server = function (port) {
    let app = express();
    app.get('/', (req, res) => {
        setInterval(function () {
            console.log('returning data...')
            res.end(data);
        }, 10000); //want a delay of 10 secs before server sends a response
    })
    app.listen(port, () => console.log("Server listening at http://%s:%s",
    "localhost", port))
}

console.log('\nStarting servers.......')
for (var i = 0; i < 5; i++) {
    server(3000 + i)
}

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

Вы используете window.setInterval вместо window.setTimeout , поэтому выполняется несколько раз.

0 голосов
/ 27 декабря 2018

Вам нужно создать несколько экземпляров приложения из экспресс.Ниже приведен фрагмент кода для запуска нескольких серверов на разных портах из одного файла.

var express = require('express');

let app1 = express();
let app2 = express();

app1.listen(3000, () => {
  console.log("Started server on 3000");
});

app2.listen(3002, () => {
  console.log("Started server on 3002");   
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...