2016-08-19 61 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')解决了这个问题。