我正在尝试在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环境变量。