2014-11-25 129 views
2

端口8010在app.json中指定,運行node index.js在端口8010上啓動服務。每次啓動服務時,NTVS都會在隨機分配的端口上啓動它。NTVS未在我指定的端口上運行節點服務

我幾乎沒有什麼經驗,但最近已經給了一個大的Nodejs/Express/Kraken/Angular代碼庫來處理。 我做的第一件事就是安裝NTVS(Visual Studio的節點工具)爲什麼?由於Visual Studio是什麼,我熟悉的

我從現有源創建一個新的項目,啓動代碼,它運行和工作,但它在不同的隨機分配端口號,每次啓動。

然後,我添加的項目配置節點和調試端口值enter image description here

這將啓動調試器監聽端口enter image description here

上,但該應用程序將啓動一個不同的端口上enter image description here

如果我運行在釋放模式下,調試器仍然在8001上啓動,服務開始監聽某個不是8000或8010的隨機端口。

所以,我試着運行,在項目設置中沒有指定端口,並且的端口爲

任何人都知道我需要做什麼才能讓應用程序在app.json中指定的端口上啓動?
感謝

更新
的應用程序使用海妖。 Kraken似乎從app.json和app-development.json文件中取得了端口配置。 這與節點dorectly運行時,如預期,甚至通過WebStorm(我有一個評估版本),所有作品

在index.js啓動應用程序的代碼不通過端口直接到海妖

kraken.create(app).listen(function (err) { 
    if (err) { 
     var log = require('log4js').getLogger(loggerName); 
     log.error(err.stack); 
    } 

應用程序對象有一個配置方法,但這似乎沒有對端口做任何事情。

+0

當你創建一個httpServer你使用什麼端口? env.process.PORT?你嘗試過硬編碼你的端口嗎? – 2014-11-25 14:25:50

+0

@VsevolodGoloviznin:不確定你的意思。當我從命令行運行它時,它從配置文件夾下的app.json文件中獲取端口,我在那裏更改端口,它在該更改的端口上運行。我_think_ express從那裏帶着那個港口。說實話,我不確定,就像我剛纔說的那樣,我到現在還沒有開始工作。 ** BIG **學習曲線適合我! – 2014-11-25 14:29:17

+1

在你的app.js(或server.js)中有'app.listen(process.env.PORT,handler)'試着在你的值上硬編碼。我也遇到了NTVS不考慮端口的問題,我通過我的設置文件提供它,並且一切正常:'app.listen(settings.env.port || process.env.PORT,處理程序)' – 2014-11-25 14:31:42

回答

1

嘗試在創建服務器時對端口進行硬編碼。

kraken.create(app).listen(53530, function (err) { 
    if (err) { 
     var log = require('log4js').getLogger(loggerName); 
     log.error(err.stack); 
}); 
+0

老兄我們在比喻中給你一個隱喻性的啤酒(比喻)。謝謝(實際感謝,不是隱喻的感謝)。 – 2015-03-26 15:53:00

+0

@BinaryWorrier他 - 他,謝謝! :) – 2015-03-26 16:10:23

0

項目屬性中的「Node.js port:」只是在啓動節點進程之前設置環境變量「PORT」。

這將是等價的:

SET PORT=1234 
node myapp 

海妖似乎使用process.env.PORT除了命令參數和配置文件。 請參閱https://github.com/krakenjs/kraken-js/issues/142

+0

對不起,花了這麼長的時間回到你身邊,但這對我沒有任何幫助。謝謝西蒙。 – 2015-03-26 15:15:05

1

添加在環境變量文本框的條目,在項目屬性對話框。

PORT:8000 

這將被設置爲process.env.PORT。

謝謝。

+0

正是我在找的答案。謝謝。 – TheCrazyProgrammer 2017-03-02 22:30:22

相關問題