相关疑难解决方法(0)

在同一端口上运行多个Node(Express)应用程序

我有多个Node应用程序(基于Express框架构建).

现在我把它们放在这样 -

  • /var/www/app1
  • /var/www/app2
  • /var/www/app3

现在我想在同一个端口上运行这3个应用程序(例如8080).那可能吗 ?

需要注意的一点是,每个应用都有这样的常见路线 -

  • app.get('/', func...);
  • app.get('/about', func...);
  • app.post('/foo', func...);
  • app.post('/bar', func...);

基本上我想像你可以用Apache/PHP设置那样做.

所以当你有一个LAMP堆栈时 -

  • /var/www/app1
  • /var/www/app2
  • /var/www/app3

您可以轻松地访问它们作为不同的应用程序 -

  • localhost/app1
  • localhost/app2
  • localhost/app3

javascript node.js express

54
推荐指数
2
解决办法
4万
查看次数

Node.js 服务器在 0.0.0.0 和 localhost 上监听同一个端口,没有错误

我偶然发现了一些有趣的东西,我无法解释它,谷歌搜索也没有成效。

我有一台 Express 服务器,即服务器 1,绑定到localhost

const express = require('express')
const app = express()
app.get('/', (req, res) => res.send('server 1'))
app.listen(4000, 'localhost')
Run Code Online (Sandbox Code Playgroud)
node      37624 user   27u  IPv4 0x681653f502970305      0t0  TCP localhost:4000 (LISTEN)
Run Code Online (Sandbox Code Playgroud)

我有另一个 Express 服务器,即服务器 2,绑定到以下所有接口0.0.0.0

node      37624 user   27u  IPv4 0x681653f502970305      0t0  TCP localhost:4000 (LISTEN)
Run Code Online (Sandbox Code Playgroud)
node      37624 user   27u  IPv4 0x681653f502970305      0t0  TCP localhost:4000 (LISTEN)
node      37693 user   25u  IPv4 0x681653f4fdbdc005      0t0  TCP *:4000 (LISTEN)
Run Code Online (Sandbox Code Playgroud)

Curling0.0.0.0给出了来自服务器 1 的响应,服务器 1 绑定到localhost,因此显然这两个是冲突的。

然而,不知何故,这并没有引发人们预期的错误,EADDRINUSE,这怎么可能?

network-programming node.js express

3
推荐指数
1
解决办法
2088
查看次数