gpt4 book ai didi

javascript - RabbitMQ amqp.node 与 nodejs express 集成

转载 作者:搜寻专家 更新时间:2023-11-01 00:38:59 28 4
gpt4 key购买 nike

官方 RabbitMQ Javascript 教程展示了 amqp.node 的用法客户端库

amqp.connect('amqp://localhost', function(err, conn) {
conn.createChannel(function(err, ch) {
var q = 'hello';

ch.assertQueue(q, {durable: false});
// Note: on Node 6 Buffer.from(msg) should be used
ch.sendToQueue(q, new Buffer('Hello World!'));
console.log(" [x] Sent 'Hello World!'");
});
});

但是,我发现很难在别处重用此代码。特别是,我不知道如何导出 channel 对象,因为它处于回调中。例如在我的 NodeJs/Express 应用中:

app.post('/posts', (req, res) => {
-- Create a new Post
-- Publish a message saying that a new Post has been created
-- Another 'newsfeed' server consume that message and update the newsfeed table
// How do I reuse the channel 'ch' object from amqp.node here
});

你们有这方面的指导吗?欢迎其他图书馆的建议(因为我刚开始,易用性是我认为最重要的)

最佳答案

amqp.node 是一个低级别的 API 集,它可以从 AMQP 到 Node.js 进行最少的转换。它基本上是一个应该通过更友好的 API 使用的驱动程序。

如果您想要一个 DIY 解决方案,请创建一个 API,您可以从您的模块中导出该 API,并从该 API 文件中管理连接、 channel 和其他对象。

但我不建议自己动手。把事情做好并不容易。

我建议使用像 Rabbot (https://github.com/arobson/rabbot/) 这样的库来为您处理这个问题。

我使用 Rabbot 已经有一段时间了,我真的很喜欢它的工作方式。它将 AMQP 的细节推到一边,让我专注于我的应用程序的业务值(value)和我需要的消息传递模式,以构建功能。

关于javascript - RabbitMQ amqp.node 与 nodejs express 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41521796/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com