【问题标题】:use different routes for different ports in express app在 express 应用中为不同的端口使用不同的路由
【发布时间】:2016-10-18 02:40:43
【问题描述】:

是否可以在 express/node 应用程序中为不同的端口配置不同的路由? 例子: '/foo/bar' 只能访问 localhost:3000 '/bar/foo' 只能访问 localhost:3002

【问题讨论】:

    标签: node.js express


    【解决方案1】:

    是的,但是您只需创建两台服务器,每台服务器都有自己的端口,然后为每个服务器创建一个 express app 对象,并在适当的应用程序对象上注册所需服务器的路由。给定的服务器只监听一个端口。

    const express = require('express');
    
    // first server
    const app3000 = express();
    app3000.get('/bar/foo', function(req, res) {
        // code here for port 3000 handler
    });
    app3000.listen(3000);
    
    // second server
    const app3002 = express();
    app3002.get('/foo/bar', function(req, res) {
        // code here for port 3002 handler
    });
    app3002.listen(3002);
    

    【讨论】:

    • 我已经尝试过这种方法。这种方法的问题是有两个独立的应用程序,我无法共享存储在内存中的状态,除非我使用两个应用程序都可以访问的某种持久性。
    • @manish - 这不是真的。您可以轻松地在这两个服务器实例之间共享内存,因为它们在同一个 Javascript 引擎中运行。它们都可以访问相同的变量(正如我在同一个模块中定义的那样)。只需在此模块中使用 Javascript 变量,您就可以轻松地在它们之间共享模块级或全局状态。
    • 谢谢@jfriend00。我正在做的是分别在自己的模块中运行两个不同的应用程序。所以,内存没有共享。
    • @manish - 即使他们在自己的模块中,但仍然在同一个 node.js 实例中,那么您可以共享模块选择共享的任何内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-19
    • 1970-01-01
    • 2021-12-31
    • 2019-08-14
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多