我正在使用nodeJS,express,swagger-tools来获取来自我的Heroku dyno中的/ docs的Swagger API文档 . 本地这是有效的,但在Heroku端口没有收听 .

app[web.1]: info: Swagger-ui is available on localhost:5765/docs
heroku[web.1]: State changed from crashed to starting
heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
heroku[web.1]: Stopping process with SIGKILL
heroku[web.1]: Process exited with status 137

在代码上,我有Heroku预定的端口 .

var listen_addr = 'localhost';
var listen_port = process.env.PORT || 8080;

var swaggerDoc = require(options.swaggerUi);
swaggerDoc.host = listen_addr +":" + listen_port;    // making sure of add

swaggerTools.initializeMiddleware(swaggerDoc, function (middleware) {

  app.use(middleware.swaggerMetadata());
  app.use(middleware.swaggerValidator());           
  app.use(middleware.swaggerUi() );             
  app.use(middleware.swaggerRouter(options) );

  app.listen(listen_port, listen_addr) {      
    winston.info('Server is listening on %s:%d', listen, port);
    winston.info('Swagger-ui is available on %s:%d/docs', listen, port);
  });
});

更新:问题似乎通过将app.listen更改为app.listen来解决(process.env.PORT || 3000,function()