小编Mic*_*ael的帖子

如何正确监听来自node.js的postgresql通知

目标:
当一条新记录插入到特定的 PostgreSQL 表中时,我希望 PostgreSQL 通知我的 Node.js Web 应用程序,以便它可以启动对外部服务的 API 调用。

据我了解,基本步骤是:

  1. 建立一个 PostgreSQL 触发器函数来执行 pg_notify() 方法。
  2. 建立一个PostgreSQL触发器,在表插入后执行触发器函数。
  3. 在 Node.js 中建立一种机制来监听特定于通道的 PostgreSQL 通知。

这是我对每一步的尝试:

  1. notification_app_after_table_insert.pgsql中的触发函数

    CREATE OR REPLACE FUNCTION notify_app_after_table_insert()
    RETURNS TRIGGER AS
    $BODY$
        BEGIN
            PERFORM pg_notify('channel', row_to_json(NEW)::text);
            RETURN new;
        END;
    $BODY$
    LANGUAGE plpgsql
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在trigger_notify_app_after_table_insert.sql中触发

    CREATE TRIGGER trigger_notify_app_after_table_insert
    AFTER INSERT
    ON table
    FOR EACH ROW
    EXECUTE PROCEDURE notify_app_after_table_insert();
    
    Run Code Online (Sandbox Code Playgroud)
  3. index.js 中的侦听器机制(在我的网络应用程序的后端内)

    //tools
    const express = require('express');
    const app = express();
    const cors = require('cors');
    const bodyParser = require('body-parser');
    const port = …
    Run Code Online (Sandbox Code Playgroud)

postgresql listen notify node.js pg-notify

6
推荐指数
1
解决办法
4293
查看次数

标签 统计

listen ×1

node.js ×1

notify ×1

pg-notify ×1

postgresql ×1