如何使用sequelize传递json参数在postgres中调用存储过程

时间:2018-04-19 05:11:10

标签: node.js postgresql sequelize.js

我是postgresql和sequelize ORM的新手。 我试图调用一个存储过程,将数据插入表。

CREATE OR REPLACE FUNCTION public.sp_eoi(
obj json)
RETURNS void
LANGUAGE 'sql' AS $BODY$
    INSERT INTO public."tbl_eoi" ("SE_CUST_ID", "SE_VENDOR_ID", "SE_VENUE_ID")
    SELECT (rec->>'custId')::integer, (rec->>'vendorId')::integer, (rec->>'venueId')::integer FROM
    json_array_elements(obj-> 'data')rec $BODY$;

从节点应用程序传递的Json输入

{ custId : 1, vendorId : 1, venueId : 1}

我正在调用proc

sequelize.query(
    'call sp_eoi(:param)',
        {replacements: { param: [ { custId:1 , vendorId: 1,venueId : 1  } ] }})
        .spread(function(outputValue , records) {
            console.log(records);        
    }).error(function(err){
        res.json(err);
    });

但始终存在错误,因为“未处理拒绝错误:无效值{custId:..}

我对此完全陌生,并且在过去两天一直试图找到问题。 任何帮助都会非常感激。

谢谢

1 个答案:

答案 0 :(得分:1)

参加聚会有点晚了...

td;博士;

Postgres使用函数(您可以将它们称为存储过程),但不会CALL,而是SELECT它们

以下是类似问题的链接:https://stackoverflow.com/a/38115374/1163927