Nodejs的两个项目跑在一个进程上可以么?

用的是PM2 工具启动nodejs项目
我想启动app1.js , 和app2.js,都跑在3000端口可以么?

app1.js文件:

const express = require("express")
const app = express()

app.get('/demo1', function (req, res) {
    res.send('demo1');
});


app.listen(3000, () => {
    console.log('http://127.0.0.1:3000')
})

app2.js文件:

const express = require("express")
const app = express()

app.get('/demo2', function (req, res) {
    res.send('demo2');
});


app.listen(3000, () => {
    console.log('http://127.0.0.1:3000')
})

结果有一个:!!!
Error: listen EADDRINUSE: address already in use :::3000

阅读 1.7k
2 个回答

不可以,这种时候,你需要
一、nginx做转发
nginx监听3000端口
app1.js在3001端口跑
app2.js在3002端口跑
访问http://127.0.0.1:3000/demo1的时候,转发到3001上去
访问http://127.0.0.1:3000/demo2的时候,转发到3002上去

二、或者把两个项目的代码合并

const express = require("express")
const app = express()

app.get('/demo1', function (req, res) {
    res.send('demo1');
});

app.get('/demo2', function (req, res) {
    res.send('demo2');
});


app.listen(3000, () => {
    console.log('http://127.0.0.1:3000')
})
头像
小芹芹
    2
    新疆阿克苏地区
    新手上路,请多包涵

    错误 你这是端口占用,和CPU没关系。

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