Openshift Zombiejs

我有一个Node.js / Express应用程序,我试图部署到Openshift。

服务器本身启动正常,并提供几乎所有的服务。

一个请求到服务器打开一个Zombiejs浏览器,然后爬网一些网页。

当浏览器试图访问一个网页,但是,我得到这个错误:

{ [Error: bind EACCES] code: 'EACCES', errno: 'EACCES', syscall: 'bind' } Possibly unhandled Error: bind EACCES at errnoException (net.js:901:11) at connect (net.js:747:21) at net.js:842:9 at asyncCallback (dns.js:68:16) at Object.onanswer [as oncomplete] (dns.js:121:9) 

我打电话visit浏览器就会失败:

 browser.visit(menus_url).then(function () { // do things }); 

在做以上之前,我启动一个基于Express的服务器,如下所示:

 var server_port = process.env.OPENSHIFT_NODEJS_PORT || 8080; var server_ip_address = process.env.OPENSHIFT_NODEJS_IP; app.listen(server_port, server_ip_address, function() { console.log('Server running on port ' + server_port); }); 

服务器启动正常,但是一旦我发出一个调用browser.visit()的请求,就会引发错误。

更新11/15

我仍然没有find解决这个问题的办法。

当浏览器被创build时,它会默认使用0.0.0.0的IP地址绑定到( https://github.com/assaf/zombie/blob/master/src/zombie/browser.coffee#L1224 ) OpenShift上没有这个function供您使用,您需要将它绑定到您的OPENSHIFT_NODEJS_IP IP地址,就像您使用Express服务器一样。 它看起来像在我链接到的文件的顶部( https://github.com/assaf/zombie/blob/master/src/zombie/browser.coffee#L42 ),您可以使用浏览器选项之一在创build浏览器对象时,传入的是'localAddress',它应该是OPENSHIFT_NODEJS_IP。 我认为这样可以解决你的问题。