我在同一台服务器上运行了两个node.js应用。当我重新启动一个监听端口7777的应用程序时,即使它们在两个不同的端口上运行,它也会停止在端口8044上运行的另一个应用程序。我该如何解决这个问题?
这是代码
AUT / app.js:
var http = require('http');
var express = require('express'),
testsConfig = require('./config/testsConfig');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
app.get('/', function (req, res, next) {
console.log('ROOT');
res.sendStatus(200);
});
app.post('/aut', function (req, res, next) {
if (req.body && req.body.secret && req.body.secret == "danzellovestodance") {
res.send(testsConfig);
} else {
res.sendStatus(500);
}
});
module.exports = app;
app.js
var express = require('express');
var http = require('http');
var webhook = require('./git-webhook/app');
var aut = require('./aut/app');
http.createServer(webhook).listen(7777);
http.createServer(aut).listen(8044);
我曾经将每个服务器分成不同的app.js文件,但是当我启动一台服务器时,它停止了另一台服务器
if [ "$1" = "start" ]; then
forever start -l /opt/aut.log -a /opt/aut/app.js
echo "Started"
elif [ "$1" = "stop" ]; then
forever stopall
echo "Stopped"
elif [ "$1" = "restart" ]; then
forever stopall
forever start -l /opt/aut.log -a /opt/aut/app.js
echo "Restarted"
elif [[ "$1" = "logs" || "$1" = "log" ]]; then
tail -f /opt/aut.log
else
echo 'Invalid command. You can only use "start", "stop", "restart", or "logs"'
fi
答案 0 :(得分:1)
问题是您只有一个启动两台服务器的Node应用程序。
当您重新启动应用程序时,它会关闭它正在运行的所有服务器。
如果您希望它们能够独立控制,您实际上必须为第二台服务器创建第二个Node应用程序。