如何使用node.js httpRequest连接到dashdb

如何使用node.js httpRequest连接到dashdb,node.js,ibm-cloud,node-red,node-request,dashdb,Node.js,Ibm Cloud,Node Red,Node Request,Dashdb,如何使用node.js的HTTP/Request模块连接到Dash DB并执行R-script代码。我可以使用节点RED来完成它,但我喜欢用编程的方式。现在我得到了这个错误: 0530 [App/0] ERR Potentially unhandled rejection [2] Error: EACCES, mkdir '/home/nol' 0530 [App/0] OUT STATUS: 500 0530 [App/0] OUT HEADERS: {""content-type":"t

如何使用node.js的HTTP/Request模块连接到Dash DB并执行R-script代码。我可以使用节点RED来完成它,但我喜欢用编程的方式。现在我得到了这个错误:

0530 [App/0] ERR Potentially unhandled rejection [2] Error: EACCES, mkdir '/home/nol' 
0530 [App/0] OUT STATUS: 500 
0530 [App/0] OUT HEADERS: {""content-type":"text/html; charset=UTF-8","set-cookie":Path=/; Secure; HttpOnly"],"connection":"Close", ""} 
0530 [App/0] OUT BODY: 
0530 [App/0] OUT An internal error has occurred. The application may still be initializing or the URL used is invalid. Check the URL and try again. For more information, view the server log files.
下面是我的代码:

  var options = {
  hostname: 'bluemix05.bluforcloud.com',
  host:'50.97.93.115',
  port: 8443,
  path: ':/console/blushiftservices/BluShiftHttp.do',
  method: 'POST',
  username: 'xxxxxxxxx',
  password: 'xxxxxxxxx',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
    'Authorization' : 'Basic ' + new Buffer(username + ':' + password).toString('base64')
  }
};
var postData = querystring.stringify({
  'msg' : 'cmd=RScriptRunScript&command=library\(ibmdbR\)\ncon <- idaConnect(\"BLUDB\",\"\",\"\")\nidaInit(con)\nSUB_NUM <- c\(0877777777\)\nPAST_YR_AVG <- c\(300\)\nTestUsageTable1<- data.frame \(SUB_NUM,PAST_YR_AVG,stringsAsFactors=FALSE\)\nsqlSave\(con, TestUsageTable1, rownames=FALSE,safer=FALSE,append=TRUE\)&profileName=BLUDB'
});
var req = http.request(options, function (res) {
                             console.log('STATUS: ' + res.statusCode);
                             console.log('HEADERS: ' + JSON.stringify(res.headers));
                             res.setEncoding('utf8');
                             res.on('data', function (chunk) {
                               console.log('BODY: ' + chunk);
                             });
                               loggererror.info('STATUS: ' + res.statusCode);
                           });

req.on('error', function(e) {
  console.log('problem with request: ' + e.message);
  loggererror.info('Status: ' + e.message);
});

req.write(postData);
req.end();
var选项={
主机名:“bluemix05.bluforcloud.com”,
主持人:'50.97.93.115',
港口:8443,
路径:':/console/blushiftservices/BluShiftHttp.do',
方法:“POST”,
用户名:“xxxxxxxx”,
密码:“XXXXXXXX”,
标题:{
“内容类型”:“应用程序/x-www-form-urlencoded”,
“授权”:“基本”+新缓冲区(用户名+”:“+密码)。toString('base64')
}
};
var postData=querystring.stringify({

“msg”:“cmd=RScriptRunScript&command=library\(ibmdbR\)\ncon我修改了代码,使其更类似于节点红色http代码(确保在测试代码之前更新用户名、密码和url以匹配dashDB实例):


嗨,你能提供更多关于你所得到的错误的详细信息吗?你能粘贴“cf日志[你的应用程序名称]--最近”命令的输出吗?嗨,下面是来自cf日志的详细信息:0530[app/0]错误潜在未处理的拒绝[2]错误:EACCES,mkdir'/home/nol'0530[app/0]输出状态:500 0530[app/0]输出头:{”内容类型“:“text/html;charset=UTF-8”,“set cookie”:Path=/;Secure;HttpOnly“],“connection”:“Close”,“}0530[App/0]输出正文:0530[App/0]发生内部错误。应用程序可能仍在初始化,或者使用的URL无效。请检查URL并重试。有关详细信息,请查看服务器日志文件。要明确,这是一个独立的node.js应用程序,还是仍然包含node red?包绕此片段的代码中是否有引用
/home/nol
(错误消息中提到的路径)?您何时收到该错误-是在调用上述代码时收到的吗?您好,这是一个独立的应用程序,不涉及节点red。但是,我可以通过节点red流单独部署和执行此r脚本代码。我的代码无处引用/home/nol,错误会随着我更改选项属性而更改。是错误r代表上面的代码,如果我删除了它,错误就消失了。我试图查看nore red的HTTP请求模块代码,看看它是如何工作的,但找不到这些参数集的任何主要差异。我确定我遗漏了一些东西,但无法找出它。谢谢!嗨,Alex,非常感谢!!:)…这很好。下面的重定向模块改变了一切。再次感谢。
var https = require("follow-redirects").https;
var urllib = require("url");

var options = urllib.parse('https://awh-yp-small03.services.dal.bluemix.net:8443/console/blushiftservices/BluShiftHttp.do');
options.method = 'POST';
options.headers = {"content-type": "application/x-www-form-urlencoded"};
options.auth = '<username>:<password>';

var postData = 'cmd=RScriptRunScript&command=library\(ibmdbR\)\ncon <- idaConnect(\"BLUDB\",\"\",\"\")\nidaInit(con)\nSUB_NUM <- c\(0877777777\)\nPAST_YR_AVG <- c\(300\)\nTestUsageTable1<- data.frame \(SUB_NUM,PAST_YR_AVG,stringsAsFactors=FALSE\)\nsqlSave\(con, TestUsageTable1, rownames=FALSE,safer=FALSE,append=TRUE\)&profileName=BLUDB';

var req = https.request(options, function (res) {
                             console.log('STATUS: ' + res.statusCode);
                             console.log('HEADERS: ' + JSON.stringify(res.headers));
                             res.setEncoding('utf8');
                             res.on('data', function (chunk) {
                               console.log('BODY: ' + chunk);
                             });
                               //loggererror.info('STATUS: ' + res.statusCode);
                           });

req.on('error', function(e) {
  console.log('problem with request: ' + e.message);
  //loggererror.info('Status: ' + e.message);
});

req.write(postData);
req.end();
STATUS: 200
HEADERS: {"x-powered-by":"Servlet/3.0","content-type":"text/json; charset=UTF-8","content-language":"en-US","content-length":"857","set-cookie":["dsweb11082=0000Pv6OYa62mRxurvYa6c2_5of:31d3d6bb-82d3-44ca-8db8-ac929c09de05; Path=/; Secure; HttpOnly"],"connection":"Close","date":"Wed, 14 Oct 2015 22:11:27 GMT","server":"WebSphere Application Server","expires":"Thu, 01 Dec 1994 16:00:00 GMT","cache-control":"no-cache=\"set-cookie, set-cookie2\""}
BODY: 
{"message":"","cmd":"RScriptRunScript","errorMessageCode":"","items":"{\"RModelOutput\":\"\",\"filename\":[],\"workingDirectory\":\"\\\/opt\\\/ibm\\\/dsserver\\\/Config\\\/RModels\\\/Pv6OYa62mRxurvYa6c2_5of\\\/1444860685812\",\"RModelError\":\"Loading required package: RODBC\\nLoading required package: ibmdbR\\nLoading required package: methods\\nLoading required package: MASS\\nLoading required package: grDevices\\nLoading required package: graphics\\nLoading required package: stats\\nLoading required package: utils\\nLoading required package: Matrix\\nLoading required package:
BODY:  arules\\n\\nAttaching package: \\u2018arules\\u2019\\n\\nThe following objects are masked from \\u2018package:base\\u2019:\\n\\n    %in%, write\\n\\nLoading required package: rpart\\nWarning message:\\nclosing unused RODBC handle 1 \\n\"}","resultcode":"success"}