OpenShift 上的 nodejs 错误



我正在尝试在OpenShift SSH终端上运行以下脚本

var deployd = require('deployd');
var server = deployd({
  port: process.env.PORT || 5000,
  env: 'production',
  db: {
    host: 'ds030607.mongolab.com',
    port: '30607',
    name: 'kheapdata',
    credentials: {
      username: 'admin',
      password: 'admin'
    }
  }
});
server.listen();
server.on('listening', function() {
  console.log("Server is listening");
});
server.on('error', function(err) {
  console.error(err);
  process.nextTick(function() { // Give the server a chance to return an error
    process.exit();
  });
});

喜欢这个节点生产.js但收到此错误

{ [Error: listen EACCES] code: 'EACCES',

errno: 'EACCES', syscall: 'listen' }

请我解决这个问题。

这是新脚本

  //production.js 
var deployd = require('deployd');
    var server = deployd({ 
// port: process.env.PORT || 5000, 
env: 'production', 
db: { host: '127.5.233.2', 
port: '27017', 
name: 'test', 
credentials: { username: 'admin', password: '4mA51PDYnL89' } } });
    server.listen('8080','127.5.233.1');
    server.on('listening', function() { console.log("Server is listening"); });
    server.on('error', function(err) { console.error(err); process.nextTick(function() { 
// Give the server a chance to return an error 
process.exit(); 
}); 
});

看起来您使用了错误的 env 变量port: process.env.PORT || 5000 .尝试钻入您的装备并运行env以找到正确的环境变量。由于您看起来像是要尝试连接到mongo,请尝试在装备中运行env | grep -i mongo

看起来您需要绑定到process.env.OPENSHIFT_NODEJS_IP并process.env.OPENSHIFT_NODEJS_PORT,看起来您的脚本正在尝试绑定到不允许的 0.0.0.0,也可能是错误的端口。 看起来你正在连接到一个外部的mongodb服务,所以你的装备中不会有任何mongo环境变量。

最新更新