"Port 4200 is already in use. Use '--port' to specify a different port."

11 浏览
0 Comments

"Port 4200 is already in use. Use '--port' to specify a different port."

嘿,我正在使用Express作为后端运行Angular2应用程序。出现了以下问题:

[3] 端口4200已被占用。使用“--port”指定不同的端口。

[3] [nodemon] 应用程序崩溃 - 等待文件更改后再启动...

[1] [HPM] 尝试将来自localhost:4200的请求代理到http://localhost:3000时发生错误(ECONNREFUSED)(https://nodejs.org/api/errors.html#errors_common_system_errors)

server.js:

import * as bodyParser from 'body-parser';
import * as dotenv from 'dotenv';
import * as express from 'express';
import * as morgan from 'morgan';
import * as mongoose from 'mongoose';
import * as path from 'path';
import setRoutes from './routes';
const app = express();
dotenv.load({path: '.env'});
app.set('port', (process.env.PORT || 3000));
app.use('/', express.static(path.join(__dirname, '../')));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use(morgan('dev'));
mongoose.connect(process.env.MONGODB_URI);
const db = mongoose.connection;
(mongoose).Promise = global.Promise;
db.on('error', console.error.bind(console, 'connection error:'));
db.on('open', () => {
  console.log('Connected to MongoDB');
  setRoutes(app);
  app.get('/*', function (req, res) {
    res.sendFile(path.join(__dirname, '../index.html'));
  });
  app.listen(app.get('port'), () => {
    console.log('Angular 2 Full Stack listening on port ' + 
  app.get('port'));
  });
});
export {app};

编辑:

这是整个代码。我认为我没有到达db.on('open')这一行。

当我检查端口时:

https://i.stack.imgur.com/l81lJ.png

我使用concurrently:使用以下选项

"dev": "concurrently \"mongod\" \"ng serve -pc proxy.conf.json --open\" \"tsc -w -p server\" \"nodemon dist/server/server.js\"",

0
0 Comments

Port 4200 is already in use. Use '--port' to specify a different port.(端口4200已被使用。使用'--port'指定一个不同的端口。)这个问题出现的原因是端口已经被其他进程占用了,解决方法有两种。

第一种方法是在不同的端口上运行Angular应用。可以通过以下命令来指定一个新的端口:

ng serve --port '{新的端口}'

第二种方法是杀死已经占用了4200端口的进程,然后在同一个端口上重新启动应用。可以通过以下命令来杀死占用了4200端口的进程,并重新启动应用:

sudo kill $(sudo lsof -t -i:4200)
ng serve

通过以上两种方法,就可以解决"Port 4200 is already in use. Use '--port' to specify a different port."这个问题。

0
0 Comments

当在Mac上使用Ctrl+Z时,会出现"Port 4200 is already in use. Use '--port' to specify a different port."的错误提示。

出现这个错误的原因是端口号4200已经被其他程序占用了,所以无法再次启动ng serve命令。

要解决这个问题,可以通过指定一个不同的端口号来启动ng serve命令。具体的解决方法是在启动命令中添加"--port"参数,后面跟上一个未被占用的端口号。

例如,可以使用以下命令启动ng serve并指定端口号为4300:

ng serve --port 4300

0
0 Comments

Port 4200 is already in use. Use '--port' to specify a different port. 这个问题出现的原因是本地有一个进程在使用4200端口。解决方法如下:

  1. 在终端上执行ps -ef | grep 4200命令,查看本地正在运行的进程。
  2. 如果进程不是有用的,可以使用kill -9 ${Process_Id}命令强制结束该进程。
  3. 然后尝试重新运行应用程序。

这个方法没有起作用。我认为node应用程序想要使用与angular应用程序相同的端口。但是我将其指定为3000而不是4200。

这部分是部分正确的。你可以在node应用程序中这样做:app.set('port', (process.env.PORT || 3000));这意味着如果你在bash配置文件中设置了PORT变量指向4200,它将采用该地址。我建议尝试删除该命令中的process.env.port部分,或者删除OR条件,然后看看node应用程序是否在3000端口上运行。

首先感谢你的帮助,但还是没有解决。我已经在顶部发布了整个server.ts文件。我不认为我能够达到db.on('open')这一行。

嘿,不要问我是怎么做到的,但是它正在工作...谢谢你的时间和帮助。

0