使用 Node.js 将参数传递给 IBM Cloud Functions 中的 Db2 查询的异常
Exception passing parameters to Db2 query in IBM Cloud Functions using Node.js
我在 IBM Cloud Functions / OpenWhisk 中编写了一个基于 Node.js 的操作。该操作从 Db2 检索数据。当我没有参数标记时,查询有效。当我使用如下所示的参数并传入 {"confname" : "IDUGEMEA2018" }
时,它会遇到错误并引发异常。
为什么?需要更改什么?
var ibmdb = require('ibm_db');
function queryConferences(dsn, confname) {
try {
var conn=ibmdb.openSync(dsn);
var data=conn.querySync("select shortname, location, begindate, enddate, uri from conference where shortname=?", confname);
conn.closeSync();
return {result : data};
} catch (e) {
return { dberror : e }
}
}
function main({confname, __bx_creds: {dashDB:{dsn}}}) {
return queryConferences(dsn,confname);
}
它失败了,因为 bindingParameters 需要一个数组。我让它工作通过以下内容:
{"confname" : ["IDUGEMEA2018"] }
在 CLI 中,我使用以下内容对其进行了测试:
bx wsk action invoke myAction -p confname "[\"IDUGEMEA2018\"]" -r
我在 IBM Cloud Functions / OpenWhisk 中编写了一个基于 Node.js 的操作。该操作从 Db2 检索数据。当我没有参数标记时,查询有效。当我使用如下所示的参数并传入 {"confname" : "IDUGEMEA2018" }
时,它会遇到错误并引发异常。
为什么?需要更改什么?
var ibmdb = require('ibm_db');
function queryConferences(dsn, confname) {
try {
var conn=ibmdb.openSync(dsn);
var data=conn.querySync("select shortname, location, begindate, enddate, uri from conference where shortname=?", confname);
conn.closeSync();
return {result : data};
} catch (e) {
return { dberror : e }
}
}
function main({confname, __bx_creds: {dashDB:{dsn}}}) {
return queryConferences(dsn,confname);
}
它失败了,因为 bindingParameters 需要一个数组。我让它工作通过以下内容:
{"confname" : ["IDUGEMEA2018"] }
在 CLI 中,我使用以下内容对其进行了测试:
bx wsk action invoke myAction -p confname "[\"IDUGEMEA2018\"]" -r