我用amqplib创建了一个名为'test_queue'的队列
然后我从rabbitmq的管理页面删除了'test_queue'(http://localhost:15672/#/queues)
但是当我执行下面的代码时,它显示"sent message successfully!"
即使名为'test_queue'的队列不存在,也不会出现错误
当队列不存在时,如何得到一个错误?
谢谢你的帮助!
const amqp = require('amqplib');
const sendMsg=async ()=>{
const connection = await amqp.connect('amqp://localhost');
const ch = await connection.createConfirmChannel()
const msg= 'hello world'
const QUEUE_NAME = 'test_queue'
ch.sendToQueue(QUEUE_NAME, Buffer.from(msg),{},function(err, ok) {
if (err !== null) {
console.log(err);
} else {
console.log('sent message successfully!');
}
})
// await ch.close();
// await connection.close();
}
sendMsg();
1条答案
按热度按时间wmtdaxz31#
如果向sendToQueue添加强制标志,则任何无法路由到队列的消息都将被发送回发布者。因此,在示例中,您需要:
然后,您可以使用相同的通道对象处理返回: