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

标签 javascript node.js express

从上周开始学习 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)
}

最佳答案

您需要从 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");   
});

关于javascript - 如何在不同的端口上运行多个快速服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53944830/

相关文章:

javascript - 如何使用 AngularJS 实现像 Google 一样的右上角个人资料按钮?

javascript - NodeJS 和 Cradle 未连接

node.js - 如何将 Angular cli 项目与 nodejs/expressjs 项目集成

javascript - 如何将输入框(jade文件)中的值发送到脚本文件(app.js)

node.js - Nginx 无法从 Node/Express 应用程序发送完整文件

javascript - 在 JavaScript 中将多个 div 放入数组中

javascript - 在 Storybook 中全局隐藏插件选项卡

node.js - 如何更快地在 Node 检查器中找到应用程序脚本?

javascript - 调整 Viewbox 以包含 svg 元素

node.js - 使用 Jimp 将图像放在其他图像上