2016-08-19 67 views
0

我有一個Node.js程序,它內置了一個PHP服務器spawn從Node.js產生的PHP服務器無法訪問:ECONNREFUSED

我使用SuperAgent模塊從我的Node.js程序訪問PHP服務器。

每次,我得到ECONNREFUSED錯誤:PHP服務器無法訪問。但是:如果我手動啓動PHP服務器(使用相同的端口),Node.js程序就可以訪問它。

爲什麼從Node.js進程產生PHP服務器時無法訪問?我已經竭盡所能,但沒有奏效:設置options.detachedtrue,設置options.stdioignore,使用setTimeout,以確保PHP服務器有足夠多的時間來啓動,等

我在Windows 10,如何使用Node.js 6.4.0。 使用的代碼可以在這裏找到。https://github.com/aquafadas-com/gulp-php-minify/blob/master/lib/minifier.js

+0

99%,這是用戶的事情,哪些用戶做如果我運行節點,則根據我的經驗手動啓動並使用節點?作爲管理員(我的意思是,以管理員身份打開控制檯)並使用npm,它可以更好地工作,例如,如果您不是管理員,則無法在Windows上創建符號鏈接,並且節點模塊喜歡使用符號鏈接 – vitr

+0

不是答案,但是你使用內置服務器來做什麼?它僅用於開發,並使用單個(阻塞)線程運行。 – Steve

+0

@Steve該程序是一個縮小PHP代碼的Gulp.js插件。所以,我需要一個臨時的PHP服務器(通常它的生命週期不會超過一分鐘),而不是一個完整的Web服務器。 – CedX

回答

0

它終於在我的代碼:(

當我手動啓動PHP服務器,I服了「/網絡」目錄中的錯誤,但檢查衍生的進程時, ,我看到了「/ lib目錄/ WEB」目錄送達(這個文件夾不存在)。

path.join(__dirname, '../web')更換聲明path.join(__dirname, 'web')解決了這個問題。