将我的应用程序部署到 bluemix 时获取 "failed to start accepting connection"
Getting "failed to start accepting connection" while deploying my app into bluemix
您好,在将我的应用程序推送或部署到 bluemix 时遇到 "failed to start accepting connection" 错误。有什么可以帮助我的吗……我的代码片段如下:
var express = require('express');
app = express();
var ibmbluemix = require('ibmbluemix')
var ibmdb = require('ibm_db');
var http = require('http');
var url = require('url');
var logger = ibmbluemix.getLogger();
var PORT = (process.env.VCAP_APP_PORT || 8000);
var HOST = (process.env.VCAP_APP_HOST || 'localhost');
var queryData = null;
var serviceName = 'SQLDB';
if (process.env.VCAP_SERVICES) {
var env = JSON.parse(process.env.VCAP_SERVICES);
db2 = env['sqldb'][0].credentials;
}
else{
console.error("INFORMATION FOR DB CONNECTION NOT FOUND");
}
var dbConnection = "DRIVER={DB2};DATABASE=" + db2.db + ";UID=" + db2.username + ";PWD=" + db2.password + ";HOSTNAME=" + db2.hostname + ";port=" + db2.port;
console.log("Connection String: " + dbConnection);
http.createServer(function(request, response) {
console.log('Creating the http server');
ibmdb.open(dbConnection, function(err, conn) {
if (err) {
response.send("error occurred " + err.message);
}
else {
console.log('before select');
conn.query("SELECT FULL_NAME, PASSWORD, SHORT_ID FROM USER02130.USER_DETAILS", function(err, rows, moreResultSets) {
console.log('Connection result error '+err);
console.log('no of records is '+rows.length);
response.writeHead(200, { 'Content-Type': 'application/json'});
response.write(JSON.stringify(rows));
response.end();
});
}
}).listen(PORT, HOST);
任何人都可以帮助我,在此先感谢
您的代码段中存在一些语法错误(缺少右括号等)。尝试改用它:
var express = require('express');
app = express();
var ibmbluemix = require('ibmbluemix')
var ibmdb = require('ibm_db');
var http = require('http');
var url = require('url');
var logger = ibmbluemix.getLogger();
var PORT = (process.env.VCAP_APP_PORT || 8000);
var HOST = (process.env.VCAP_APP_HOST || 'localhost');
var queryData = null;
var serviceName = 'SQLDB';
if (process.env.VCAP_SERVICES) {
var env = JSON.parse(process.env.VCAP_SERVICES);
var db2 = env['sqldb'][0].credentials; // missed declaration
}
else{
console.error("INFORMATION FOR DB CONNECTION NOT FOUND");
}
var dbConnection = "DRIVER={DB2};DATABASE=" + db2.db + ";UID=" + db2.username + ";PWD=" + db2.password + ";HOSTNAME=" + db2.hostname + ";port=" + db2.port;
console.log("Connection String: " + dbConnection);
http.createServer(function(request, response) {
console.log('server request'); // does not create a server on every request
ibmdb.open(dbConnection, function(err, conn) {
if (err) {
response.send("error occurred " + err.message);
}
else {
console.log('before select');
conn.query("SELECT FULL_NAME, PASSWORD, SHORT_ID FROM USER02130.USER_DETAILS", function(err, rows, moreResultSets) {
console.log('Connection result error '+err);
console.log('no of records is '+rows.length);
response.writeHead(200, { 'Content-Type': 'application/json'});
response.write(JSON.stringify(rows));
response.end();
});
}
}) // missed closing brackets
}).listen(PORT, HOST);
console.log("Server running at "+HOST+" on port "+ PORT);
Node.js本地设置非常简单,搞定here。 运行它在本地可以帮助您识别许多问题,例如语法错误。
希望对您有所帮助!
cf logs <app name> --recent
此命令将为您提供日志,其中会显示您的语法错误所在。
很高兴您知道了,但为了将来参考,“无法开始接受连接”错误通常意味着代码在 调用 初始化期间抛出异常11=]。尝试在调用 listen(...)
之前添加以下代码
process.on('uncaughtException', function (err) {
console.log(err);
});
如果启动代码由于不可预见的原因而失败,而不是收到默认的 "app crashed" 消息,那么您的控制台日志将包含一个有用的堆栈跟踪。
还卡住了? Pat Mueller 在 Node.js debugging starts with better logging! and David Clements' Node.js tips #1: develop debugging techniques 中提供了其他有用的建议,提供了更高级的调试技巧,例如函数去匿名化。
您好,在将我的应用程序推送或部署到 bluemix 时遇到 "failed to start accepting connection" 错误。有什么可以帮助我的吗……我的代码片段如下:
var express = require('express');
app = express();
var ibmbluemix = require('ibmbluemix')
var ibmdb = require('ibm_db');
var http = require('http');
var url = require('url');
var logger = ibmbluemix.getLogger();
var PORT = (process.env.VCAP_APP_PORT || 8000);
var HOST = (process.env.VCAP_APP_HOST || 'localhost');
var queryData = null;
var serviceName = 'SQLDB';
if (process.env.VCAP_SERVICES) {
var env = JSON.parse(process.env.VCAP_SERVICES);
db2 = env['sqldb'][0].credentials;
}
else{
console.error("INFORMATION FOR DB CONNECTION NOT FOUND");
}
var dbConnection = "DRIVER={DB2};DATABASE=" + db2.db + ";UID=" + db2.username + ";PWD=" + db2.password + ";HOSTNAME=" + db2.hostname + ";port=" + db2.port;
console.log("Connection String: " + dbConnection);
http.createServer(function(request, response) {
console.log('Creating the http server');
ibmdb.open(dbConnection, function(err, conn) {
if (err) {
response.send("error occurred " + err.message);
}
else {
console.log('before select');
conn.query("SELECT FULL_NAME, PASSWORD, SHORT_ID FROM USER02130.USER_DETAILS", function(err, rows, moreResultSets) {
console.log('Connection result error '+err);
console.log('no of records is '+rows.length);
response.writeHead(200, { 'Content-Type': 'application/json'});
response.write(JSON.stringify(rows));
response.end();
});
}
}).listen(PORT, HOST);
任何人都可以帮助我,在此先感谢
您的代码段中存在一些语法错误(缺少右括号等)。尝试改用它:
var express = require('express');
app = express();
var ibmbluemix = require('ibmbluemix')
var ibmdb = require('ibm_db');
var http = require('http');
var url = require('url');
var logger = ibmbluemix.getLogger();
var PORT = (process.env.VCAP_APP_PORT || 8000);
var HOST = (process.env.VCAP_APP_HOST || 'localhost');
var queryData = null;
var serviceName = 'SQLDB';
if (process.env.VCAP_SERVICES) {
var env = JSON.parse(process.env.VCAP_SERVICES);
var db2 = env['sqldb'][0].credentials; // missed declaration
}
else{
console.error("INFORMATION FOR DB CONNECTION NOT FOUND");
}
var dbConnection = "DRIVER={DB2};DATABASE=" + db2.db + ";UID=" + db2.username + ";PWD=" + db2.password + ";HOSTNAME=" + db2.hostname + ";port=" + db2.port;
console.log("Connection String: " + dbConnection);
http.createServer(function(request, response) {
console.log('server request'); // does not create a server on every request
ibmdb.open(dbConnection, function(err, conn) {
if (err) {
response.send("error occurred " + err.message);
}
else {
console.log('before select');
conn.query("SELECT FULL_NAME, PASSWORD, SHORT_ID FROM USER02130.USER_DETAILS", function(err, rows, moreResultSets) {
console.log('Connection result error '+err);
console.log('no of records is '+rows.length);
response.writeHead(200, { 'Content-Type': 'application/json'});
response.write(JSON.stringify(rows));
response.end();
});
}
}) // missed closing brackets
}).listen(PORT, HOST);
console.log("Server running at "+HOST+" on port "+ PORT);
Node.js本地设置非常简单,搞定here。 运行它在本地可以帮助您识别许多问题,例如语法错误。
希望对您有所帮助!
cf logs <app name> --recent
此命令将为您提供日志,其中会显示您的语法错误所在。
很高兴您知道了,但为了将来参考,“无法开始接受连接”错误通常意味着代码在 调用 初始化期间抛出异常11=]。尝试在调用 listen(...)
process.on('uncaughtException', function (err) {
console.log(err);
});
如果启动代码由于不可预见的原因而失败,而不是收到默认的 "app crashed" 消息,那么您的控制台日志将包含一个有用的堆栈跟踪。
还卡住了? Pat Mueller 在 Node.js debugging starts with better logging! and David Clements' Node.js tips #1: develop debugging techniques 中提供了其他有用的建议,提供了更高级的调试技巧,例如函数去匿名化。