嘿,我正在运行一个以express作为后端的angular2应用程序。遇到以下问题:
[3] Port 4200 is already in use. Use '--port' to specify a different port.
[3] [nodemon] app crashed - waiting for file changes before starting...
[1] [HPM] Error occurred while trying to proxy request /api/jobs from localhost:4200 to 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;
(<any>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};
- edit*:这里是孔代码。我想我没有达到
db.on('open')
的行
当我检查端口时:
我同时使用:使用此选项
"dev": "concurrently \"mongod\" \"ng serve -pc proxy.conf.json --open\" \"tsc -w -p server\" \"nodemon dist/server/server.js\"",
5条答案
按热度按时间htrmnn0y1#
看起来4200上本地正在运行某个进程。下面是我将执行的操作-
1.在您的终端上执行
ps -ef | grep 4200
以检查哪个进程正在本地运行1.如果没有用,则终止该进程。
kill -9 ${Process_Id}
这将强制终止该进程。1.请尝试再次运行该应用。
j5fpnvbx2#
Webpack:已成功编译。^C [1]+已终止:9 ng服务
webpack:编译成功。^Z [1]+已停止ng服务
如果在Mac中使用Ctrl+Z,则会显示端口4200已在使用中。请使用“--port”指定其他端口。稍后。
2j4z5cfb3#
这意味着端口正在运行其他进程,因此您有两个解决方案。
1通过以下方式运行不同端口的Angular
2杀死同一端口并在同一端口服务
q7solyqu4#
对于Windows,端口可能已经在运行,在这种情况下,以管理员身份进入cmd并查找正在运行的端口的PID。例如,我的运行端口是4200。
然后在cmd上运行此命令
在列表中查找端口号为4200的端口,或者右键单击终端,然后单击查找此处,在“查找内容”中输入4200,然后单击“查找下一步”:例如,您发现端口号4200由pid 17200使用,然后在cmd中键入以下命令:
然后您可以根据需要链接端口或启动serve命令
zhte4eai5#
使用
npx kill-port 4200
,然后使用ng serve
参考:“Port 4200 is already in use”. Killing all the processes associated with 4200 did not work.