Azure Storage Queue SDK Samples (JavaScript)

Explore these samples to learn how to interact with Azure Storage Queues using the JavaScript SDK. This guide covers common operations like sending, receiving, and deleting messages.

Note: Ensure you have the Azure SDK for JavaScript installed (`npm install @azure/storage-queue`) and your connection string or credentials are set up correctly.

1. Creating a Queue Client

Initialize a `QueueClient` to manage your queues.


// Import the QueueClient
const { QueueClient } = require("@azure/storage-queue");

// Replace with your actual connection string
const connectionString = "YOUR_AZURE_STORAGE_CONNECTION_STRING";
const queueName = "my-sample-queue";

// Create a new QueueClient
const queueClient = new QueueClient(connectionString, queueName);

console.log(`Queue client created for queue: ${queueName}`);
                

2. Creating a Queue

Use the client to create a new queue if it doesn't exist.


async function createQueue() {
    try {
        const createResponse = await queueClient.create();
        console.log(`Queue "${queueName}" created successfully.`, createResponse);
    } catch (error) {
        if (error.statusCode === 409) {
            console.log(`Queue "${queueName}" already exists.`);
        } else {
            console.error("Error creating queue:", error);
        }
    }
}

// Call the function to create the queue
// createQueue();
                
Show/Hide Code

3. Sending a Message

Add messages to your queue.


async function sendMessage(messageText) {
    try {
        const response = await queueClient.sendMessage(messageText);
        console.log(`Message sent: "${messageText}"`, response);
        return response.messageId;
    } catch (error) {
        console.error("Error sending message:", error);
        return null;
    }
}

// Example usage:
// const messageId = await sendMessage("Hello Azure Queue!");
// console.log(`Sent message with ID: ${messageId}`);
                
Show/Hide Code

4. Receiving Messages

Retrieve messages from the queue.


async function receiveMessages() {
    console.log("Attempting to receive messages...");
    try {
        // You can specify numberOfMessages (1-32) and visibilityTimeout (seconds)
        const response = await queueClient.receiveMessages({ numberOfMessages: 5, visibilityTimeout: 30 });

        if (response.receivedMessages && response.receivedMessages.length > 0) {
            console.log(`Received ${response.receivedMessages.length} messages:`);
            for (const message of response.receivedMessages) {
                console.log(`- Message ID: ${message.messageId}, Content: "${message.messageText}"`);
                // You would typically process the message here
                // and then delete it or update its visibility.
            }
            return response.receivedMessages;
        } else {
            console.log("No messages in the queue.");
            return [];
        }
    } catch (error) {
        console.error("Error receiving messages:", error);
        return [];
    }
}

// Example usage:
// const receivedMessages = await receiveMessages();
                
Show/Hide Code

5. Deleting a Message

Remove a message from the queue after it has been successfully processed.


async function deleteMessage(messageId, popReceipt) {
    try {
        await queueClient.deleteMessage(messageId, popReceipt);
        console.log(`Message ${messageId} deleted successfully.`);
    } catch (error) {
        console.error(`Error deleting message ${messageId}:`, error);
    }
}

// Example usage (assuming you have messageId and popReceipt from receiveMessages):
// if (receivedMessages && receivedMessages.length > 0) {
//     const messageToDelete = receivedMessages[0]; // Delete the first message received
//     await deleteMessage(messageToDelete.messageId, messageToDelete.popReceipt);
// }
                
Show/Hide Code

6. Clearing the Queue

Remove all messages from the queue.


async function clearQueue() {
    try {
        await queueClient.clearMessages();
        console.log(`Queue "${queueName}" cleared successfully.`);
    } catch (error) {
        console.error("Error clearing queue:", error);
    }
}

// Example usage:
// clearQueue();
                
Show/Hide Code

7. Deleting the Queue

Remove the queue itself from your storage account.


async function deleteQueue() {
    try {
        await queueClient.delete();
        console.log(`Queue "${queueName}" deleted successfully.`);
    } catch (error) {
        console.error("Error deleting queue:", error);
    }
}

// Example usage:
// deleteQueue();
                
Show/Hide Code
Further Reading: For more advanced scenarios like peek messages, getting queue metadata, and more, refer to the official Azure Storage Queue SDK documentation.