如何在不同的端口上运行多个快速服务器?

新手上路,请多包涵

从上周开始学习 node 并掌握了 node 和 express。但现在我面临一个问题。我试图在不同的端口上运行多个快速服务器,并希望它们在 10 秒后返回响应。运行程序后,服务器启动正常,但是当我点击 http://localhost:3000 或任何服务器的 url 时,观察到以下内容:

- 在客户端,我在 10 秒后得到所有服务器的正确响应

- 服务器进入无限循环并在延迟 10 秒后不断打印“返回数据…”

我尝试使用一个函数,使用一个 js 文件导出服务器,另一个类导入它并在 for 循环中调用。但是服务器在延迟 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)
}

原文由 technicalworm 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 341
2 个回答

您需要从 express 创建多个应用程序实例。下面是从同一个文件在不同端口上启动多个服务器的代码片段。

 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");
});

原文由 Sreehari 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题