2016-10-14 26 views
1

我使用gulp-nodemon,因爲它最明顯的實用程序。在gulp-nodemon中設置端口有什麼用處?

Nodemon是一個實用程序,它將監視源中的所有更改 並自動重新啓動服務器。

但是我不理解一種似乎在express/node開發中普遍存在的做法。

我剛開始工作的節點,並表達但是從我的理解:

app.js

var express = require('express'), 
    app = express(), 
    port = process.env.PORT || 8016; 


app.get('/', function rootHndlr(req, res) { 
    /* body... */ 
    res.send('welcome to my API!'); 
}); 

app.listen(port, function listenHndlr(){ 
    console.log('Gulp is running my app on PORT ' + port); 
}); 

下如果不設置在端口設置爲8016

port = process.env.PORT || 8016;

所以現在我們結合並監聽指定的主機和端口上的連接。

但後來我看到人們在他們一飲而盡任務配置以下,以nodemon他們gulpfile.js

gulpfile.js

var gulp = require('gulp'), 
    nodemon = require('gulp-nodemon'); 

gulp.task('default', function() { 
    // content 
    nodemon({ 
     script: 'app.js', 
     ext: 'js' 
     env: { 
      PORT: 8000 
     }, 
     ignore: ['./node_modules/**'] 
    }). 
    on('restart', function(){ 
     consile.log('Restarting'); 
    }); 
}); 

,你可以在值中的一個nodemonenv: {PORT: 8000}爲什麼再次設置端口?

謝謝!

回答

2

人們使用類似的東西作爲後備:port = process.env.PORT || 8016;

您的應用程序應該是足夠的,並通過傳遞的環境變量,使之聽另一個端口靈活。一般來說,這是env vars的目的。

關於你的榜樣,我想有一個原因,那寫這篇gulpfile的傢伙想使應用程序偵聽端口8000我會說,它是安全的更改值或刪除PORT: 8000爲只要您100%確定應用程序不需要在端口8000上運行(例如,它位於將流量轉發到端口8000的逆向代理後面),就沒有理由。

相關問題