Azure SDK for JavaScript

Documentation for working with Azure Storage Queues

Introduction to Azure Storage Queues SDK for JavaScript

The Azure Storage Queues client library for JavaScript enables you to interact with Azure Queue Storage, a service that stores large numbers of small messages. You can access messages from anywhere in the world via HTTP or HTTPS. A Queue service application is typically composed of components that communicate asynchronously by adding messages to and retrieving messages from queues.

Key Features:

  • Send, receive, and delete messages.
  • Peek at messages without dequeuing them.
  • Update message visibility and content.
  • Manage queue metadata.
  • Support for streaming message payloads.

Installation

You can install the Azure Storage Queues SDK for JavaScript using npm:


npm install @azure/storage-queue
            

Getting Started

To get started, you'll need an Azure Storage account and a connection string or shared access signature (SAS) token. Here's a basic example of how to create a queue and send a message:


import { QueueClient } from "@azure/storage-queue";

async function main() {
    const connectionString = ""; // Replace with your connection string
    const queueName = "my-javascript-queue";

    const queueClient = new QueueClient(connectionString, queueName);

    // Create the queue if it doesn't exist
    try {
        await queueClient.create();
        console.log(`Queue '${queueName}' created successfully.`);
    } catch (error) {
        if (error.statusCode !== 409) { // 409 Conflict means queue already exists
            console.error("Error creating queue:", error);
            return;
        }
        console.log(`Queue '${queueName}' already exists.`);
    }

    // Send a message
    const messageContent = "Hello from Azure SDK for JavaScript!";
    try {
        const sendMessageResponse = await queueClient.sendMessage(messageContent);
        console.log(`Message sent. Message ID: ${sendMessageResponse.messageId}`);
    } catch (error) {
        console.error("Error sending message:", error);
    }

    // Receive a message (and delete it)
    try {
        const receiveMessagesResponse = await queueClient.receiveMessages({ numberOfMessages: 1 });
        if (receiveMessagesResponse.receivedMessages && receiveMessagesResponse.receivedMessages.length > 0) {
            const message = receiveMessagesResponse.receivedMessages[0];
            console.log(`Received message: ${message.messageText}`);
            await queueClient.deleteMessage(message.messageId, message.popReceipt);
            console.log(`Message deleted.`);
        } else {
            console.log("No messages in the queue.");
        }
    } catch (error) {
        console.error("Error receiving/deleting message:", error);
    }
}

main().catch((err) => {
    console.error("The sample encountered an error:", err);
});
            

API Reference

The @azure/storage-queue package provides the following key classes and methods:

Class/Method Description
QueueClient Client for interacting with Azure Queue Storage.
QueueClient.create() Creates a new queue.
QueueClient.deleteQueue() Deletes an existing queue.
QueueClient.sendMessage() Adds a new message to the back of the message queue.
QueueClient.receiveMessages() Retrieves one or more messages from the front of the queue.
QueueClient.peekMessages() Retrieves one or more messages from the front of the queue without making them visible.
QueueClient.updateMessage() Updates the visibility of a message.
QueueClient.deleteMessage() Deletes a specific message from the queue.
QueueClient.getProperties() Retrieves the properties of the queue.
QueueClient.clear() Clears all messages from the queue.

More Examples

Explore more advanced scenarios: