Javascript 在具有多个参数的环回远程方法中执行Postgres存储过程
我试图在我的一个模型上通过远程方法执行一个存储过程。我能够通过使用单个参数的定制SQL执行非常基本的选择,但似乎无法绕过将多个参数传递到进程中的错误。这里是错误,下面是我的代码 有人知道这是什么原因吗Javascript 在具有多个参数的环回远程方法中执行Postgres存储过程,javascript,postgresql,stored-procedures,loopbackjs,Javascript,Postgresql,Stored Procedures,Loopbackjs,我试图在我的一个模型上通过远程方法执行一个存储过程。我能够通过使用单个参数的定制SQL执行非常基本的选择,但似乎无法绕过将多个参数传递到进程中的错误。这里是错误,下面是我的代码 有人知道这是什么原因吗 [error: bind message supplies 1 parameters, but prepared statement "" requires 3] name: 'error', length: '130', 'severity': 'ERROR', code: '08P01', d
[error: bind message supplies 1 parameters, but prepared statement "" requires 3]
name: 'error',
length: '130',
'severity': 'ERROR',
code: '08P01',
detail: undefined,
hint: undefined,
position: undefined,
...
file: 'postgres.c',
line: '1556',
routine: 'exec_bind_message' }
ScenarioAsvTarget.prepopulate = function(prepopulate, cb) {
var ds=ScenarioAsvTarget.dataSource;
var sql = "SELECT PREPOPULATE_ASV_TARGET($1,$2,$3)";
ds.connector.execute(sql,[prepopulate],function(err,targets) {
if (err) console.error(err);
console.info(targets);
cb(err,targets);
});
};
ScenarioAsvTarget.remoteMethod(
'prepopulate',
{
http: {verb: 'post'},
description: "Prepopulate target cloud infrastructure",
accepts: [
{arg: 'input_scenario_id', type: 'Number'},
{arg: 'input_scenario_asv_id', type: 'Number'},
{arg: 'input_user_id', type:'String'}
],
returns: {arg: 'data', type: ['string'], root: true}
}
);
您需要分别传递args
ScenarioAsvTarget.prepopulate = function(input_scenario_id, input_scenario_asv_id, input_user_id, cb) {
var ds = ScenarioAsvTarget.dataSource;
var sql = "SELECT PREPOPULATE_ASV_TARGET ($1, $2, $3)";
ds.connector.execute(sql, input_scenario_id, input_scenario_asv_id, input_user_id, function(err, targets) {
if (err) console.error(err);
console.info(targets);
cb(err, targets);
});
};
ScenarioAsvTarget.remoteMethod(
'prepopulate',
{
http: {verb: 'post'},
description: "Prepopulate target cloud infrastructure",
accepts: [
{arg: 'input_scenario_id', type: 'Number'},
{arg: 'input_scenario_asv_id', type: 'Number'},
{arg: 'input_user_id', type:'String'}
],
returns: {arg: 'data', type: ['string'], root: true}
}
);
您需要分别传递args
ScenarioAsvTarget.prepopulate = function(input_scenario_id, input_scenario_asv_id, input_user_id, cb) {
var ds = ScenarioAsvTarget.dataSource;
var sql = "SELECT PREPOPULATE_ASV_TARGET ($1, $2, $3)";
ds.connector.execute(sql, input_scenario_id, input_scenario_asv_id, input_user_id, function(err, targets) {
if (err) console.error(err);
console.info(targets);
cb(err, targets);
});
};
ScenarioAsvTarget.remoteMethod(
'prepopulate',
{
http: {verb: 'post'},
description: "Prepopulate target cloud infrastructure",
accepts: [
{arg: 'input_scenario_id', type: 'Number'},
{arg: 'input_scenario_asv_id', type: 'Number'},
{arg: 'input_user_id', type:'String'}
],
returns: {arg: 'data', type: ['string'], root: true}
}
);