如何使用rabbitMQ在Node.js webapp中发送消息

时间:2018-05-02 23:28:45

标签: node.js amazon-ec2 rabbitmq

所以我在www.infinity2o.com上部署了一个完整的堆栈Node.js webapp

当我在本地开发它时,我通过代理从localhost:3000localhost:5000通过添加到我的package.json

让前端API进入后端API
"proxy": {
    "/auth/*": {
        "target": "http://localhost:5000"
    },
    "/api/*": {
        "target": "http://localhost:5000"
    }
},

我的问题是,当我的后端API使用以下代码向EC2上的RabbitMQ服务器发送消息(msg)时:

        await amqp.connect(
            'amqp://infinity2o:2134711@52.4.101.52:5672',
            function(err, conn) {
                conn.createChannel(function(err, ch) {
                    let q = 'run_minerva_for_new_user_queue';
                    let msg = mongoDBUserId;
                    ch.assertQueue(q, { durable: false });
                    ch.sendToQueue(q, new Buffer(msg));
                    console.log(' [x] Sent %s', msg);
                });
                setTimeout(function() {
                    conn.close();
                    process.exit(0);
                }, 500);
            }
        );

我的前端webapp的后端服务器说:

Error occurred while trying to proxy request /api/current_user from localhost:3000 to http://localhost:5000 (ECONNREFUSED)

问题是我不明白为什么命中我的后端API的不同部分会导致此问题,因为在发送RabbitMQ消息后命中/api/current_user

1 个答案:

答案 0 :(得分:0)

这是因为我在RabbitMQ代码中有process.exit(0);我从文档中复制过来。