Inicio rápido: Uso de Node.js para conectar y consultar datos en Azure Database for PostgreSQL: servidor único

Se aplica a: Azure Database for PostgreSQL: servidor único

Importante

El servicio de servidor único de Azure Database for PostgreSQL está en proceso de retirada. Se recomienda encarecidamente actualizar a Azure Database for PostgreSQL: servidor flexible. Para obtener más información sobre la migración a Azure Database for PostgreSQL: servidor flexible, consulte ¿Qué sucede con el servidor único de Azure Database for PostgreSQL?.

En este inicio rápido se va a conectar a una instancia de Azure Database for PostgreSQL mediante una aplicación de Node.js. Se indica cómo usar instrucciones SQL para consultar, insertar, actualizar y eliminar datos en la base de datos. En los pasos de este artículo se da por hecho que está familiarizado con el desarrollo mediante Node.js, pero que nunca ha trabajado con Azure Database for PostgreSQL.

Prerrequisitos

Instalación del cliente pg

Instale pg, que es un cliente de PostgreSQL para Node.js.

Para ello, ejecute el Administrador de paquetes de Node (npm) para JavaScript desde la línea de comandos.

npm install pg

Compruebe la instalación; para ello, enumere los paquetes instalados.

npm list

Obtención de información sobre la conexión

Obtenga la información de conexión necesaria para conectarse a Azure Database for PostgreSQL. Necesitará el nombre completo del servidor y las credenciales de inicio de sesión.

  1. En Azure Portal, busque y seleccione el servidor que ha creado (como mydemoserver).

  2. En el panel Información general del servidor, anote el nombre del servidor y el nombre de usuario del administrador. Si olvida la contraseña, puede restablecerla en este panel.

    Cadena de conexión de Azure Database for PostgreSQL

Ejecución del código de JavaScript en Node.js

Puede iniciar Node.js desde el shell de Bash, el terminal o el símbolo del sistema de Windows; para ello, escriba node y luego copie y pegue el ejemplo de código de JavaScript para ejecutarlo de manera interactiva. También puede guardar el código de JavaScript en un archivo de texto e iniciar node filename.js con el nombre de archivo como parámetro para ejecutarlo.

Conexión, creación de una tabla e inserción de datos

Use el código siguiente para conectarse y cargar los datos mediante las instrucciones SQL CREATE TABLE e INSERT INTO. El objeto pg.Client se usa para interactuar con el servidor de PostgreSQL. La función pg.Client.connect() se usa para establecer la conexión al servidor. La función pg.Client.query() se usa para ejecutar la consulta SQL en la base de datos de PostgreSQL.

Reemplace los parámetros host, dbname, user y password por los valores especificados al crear el servidor y la base de datos.

const pg = require('pg');

const config = {
    host: '<your-db-server-name>.postgres.database.azure.com',
    // Do not hard code your username and password.
    // Consider using Node environment variables.
    user: '<your-db-username>',     
    password: '<your-password>',
    database: '<name-of-database>',
    port: 5432,
    ssl: true
};

const client = new pg.Client(config);

client.connect(err => {
    if (err) throw err;
    else {
        queryDatabase();
    }
});

function queryDatabase() {
    const query = `
        DROP TABLE IF EXISTS inventory;
        CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);
        INSERT INTO inventory (name, quantity) VALUES ('banana', 150);
        INSERT INTO inventory (name, quantity) VALUES ('orange', 154);
        INSERT INTO inventory (name, quantity) VALUES ('apple', 100);
    `;

    client
        .query(query)
        .then(() => {
            console.log('Table created successfully!');
            client.end(console.log('Closed client connection'));
        })
        .catch(err => console.log(err))
        .then(() => {
            console.log('Finished execution, exiting now');
            process.exit();
        });
}

Lectura de datos

Use el código siguiente para conectarse y leer los datos mediante la instrucción SQL SELECT. El objeto pg.Client se usa para interactuar con el servidor de PostgreSQL. La función pg.Client.connect() se usa para establecer la conexión al servidor. La función pg.Client.query() se usa para ejecutar la consulta SQL en la base de datos de PostgreSQL.

Reemplace los parámetros host, dbname, user y password por los valores especificados al crear el servidor y la base de datos.

const pg = require('pg');

const config = {
    host: '<your-db-server-name>.postgres.database.azure.com',
    // Do not hard code your username and password.
    // Consider using Node environment variables.
    user: '<your-db-username>',     
    password: '<your-password>',
    database: '<name-of-database>',
    port: 5432,
    ssl: true
};

const client = new pg.Client(config);

client.connect(err => {
    if (err) throw err;
    else { queryDatabase(); }
});

function queryDatabase() {

    console.log(`Running query to PostgreSQL server: ${config.host}`);

    const query = 'SELECT * FROM inventory;';

    client.query(query)
        .then(res => {
            const rows = res.rows;

            rows.map(row => {
                console.log(`Read: ${JSON.stringify(row)}`);
            });

            process.exit();
        })
        .catch(err => {
            console.log(err);
        });
}

Actualización de datos

Use el código siguiente para conectarse y leer los datos mediante la instrucción SQL UPDATE. El objeto pg.Client se usa para interactuar con el servidor de PostgreSQL. La función pg.Client.connect() se usa para establecer la conexión al servidor. La función pg.Client.query() se usa para ejecutar la consulta SQL en la base de datos de PostgreSQL.

Reemplace los parámetros host, dbname, user y password por los valores especificados al crear el servidor y la base de datos.

const pg = require('pg');

const config = {
    host: '<your-db-server-name>.postgres.database.azure.com',
    // Do not hard code your username and password.
    // Consider using Node environment variables.
    user: '<your-db-username>',     
    password: '<your-password>',
    database: '<name-of-database>',
    port: 5432,
    ssl: true
};

const client = new pg.Client(config);

client.connect(err => {
    if (err) throw err;
    else {
        queryDatabase();
    }
});

function queryDatabase() {
    const query = `
        UPDATE inventory 
        SET quantity= 1000 WHERE name='banana';
    `;

    client
        .query(query)
        .then(result => {
            console.log('Update completed');
            console.log(`Rows affected: ${result.rowCount}`);
        })
        .catch(err => {
            console.log(err);
            throw err;
        });
}

Eliminación de datos

Use el código siguiente para conectarse y leer los datos mediante la instrucción SQL DELETE. El objeto pg.Client se usa para interactuar con el servidor de PostgreSQL. La función pg.Client.connect() se usa para establecer la conexión al servidor. La función pg.Client.query() se usa para ejecutar la consulta SQL en la base de datos de PostgreSQL.

Reemplace los parámetros host, dbname, user y password por los valores especificados al crear el servidor y la base de datos.

const pg = require('pg');

const config = {
    host: '<your-db-server-name>.postgres.database.azure.com',
    // Do not hard code your username and password.
    // Consider using Node environment variables.
    user: '<your-db-username>',     
    password: '<your-password>',
    database: '<name-of-database>',
    port: 5432,
    ssl: true
};

const client = new pg.Client(config);

client.connect(err => {
    if (err) {
        throw err;
    } else {
        queryDatabase();
    }
});

function queryDatabase() {
    const query = `
        DELETE FROM inventory 
        WHERE name = 'apple';
    `;

    client
        .query(query)
        .then(result => {
            console.log('Delete completed');
            console.log(`Rows affected: ${result.rowCount}`);
        })
        .catch(err => {
            console.log(err);
            throw err;
        });
}

Limpieza de recursos

Para limpiar todos los recursos utilizados durante esta guía de inicio rápido, elimine el grupo de recursos con el siguiente comando:

az group delete \
    --name $AZ_RESOURCE_GROUP \
    --yes

Pasos siguientes