2017-06-10 7 views
0

ねえ、私はバックエンドとしてエクスプレスでangular2アプリを実行しています。次の問題を取得する:"ポート4200は既に使用されています。 '--port'を使用して別のポートを指定してください。

[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}; 

編集。私はポートを検査する際db.on('open')

とのラインに到達いけないと思う:

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

私は同時に使用して:ローカルで実行しているいくつかのプロセスがあるように、このオプションを使用して

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

これはローカルまたはLinuxボックスで実行していますか? –

+0

私はそれをローカルで使っています –

+0

あなたのモンゴはローカルで実行されているポートは何ですか? –

答えて

0

が見えます私がやることはここにあります。

  1. 端末でps -ef | grep 4200を実行して、ローカルで実行されているプロセスを確認してください。
  2. 有用でない場合は、そのプロセスを終了してください。 kill -9 ${Process_Id}これはプロセスを強制終了させます。
  3. もう一度アプリを実行してみます。
+0

うまくいかなかった。私は、ノードのアプリケーションは、角度1と同じポートを使用したいと思う。しかし、私はお尻3000と4200を指定しないでください –

+0

よくthats部分的に真です。これはノードのアプリケーションで行います。 app.set( 'port'、(process.env.PORT || 3000)); これは、4200を指すようにbashプロファイルにPORT変数が設定されている場合、そのアドレスを使用することを意味します。私はそのコマンドでprocess.env.port OR条件を削除してみて、ノードアプリケーションが3000で実行されているかどうかを確認してください。 –

+0

あなたの助けを借りても、まだ解決策はありません。 postetdの上に穴server.tsを持ってください。私は私が 'db.on( 'open')という行に到達したとは思わない。 –

0

webpack:コンパイルが正常に完了しました。 ^ C [1] +死亡:9 ng serve

webpack:コンパイルが正常に完了しました。 ^ Z [1] +停止したサービス

MacでCtrl + Zを使用している場合は、 '4200がすでに使用中です。別のポートを指定するには '--port'を使用します。

関連する問題