Создание серверной части REST API с использованием Node.js, Express и Postgres

Опубликовано: 29 Июля, 2021

Бэкэнд JavaScript может быть разработан с использованием Node.js, Express и Postgres. Этот бэкэнд может выполнять операции запросов в базе данных PostgreSQL и предоставлять статус или данные в REST API.

Требования к установке:

  1. Node.js:
    • Установите Node.js в Windows
    • Установите Node.js в Linux
  2. PostgreSQL:
    • Установите Postgres в Windows
    • Установите Postgres в Linux
    • Установите Postgres на Mac

Тестирование на успешную установку:

  1. Node.js:
    • Откройте командную строку или терминал и введите:
       узел -v

      В выводе должен быть показан пример номера версии:

       Версия 12.14.0

      Примечание. Если отображается команда не найдена, значит, node.js не установлен.

  2. Postgres:
    • Windows: найдите SQL Shell, если обнаружите, что установка прошла успешно.
    • Linux или Mac: введите команду ниже:
       который psq

      Примечание. Если вывод присутствует, значит, он установлен успешно.

Шаги по настройке базы данных:

  • Откройте оболочку PostgresSQL
  • Введите учетные данные базы данных для локальной установки или нажмите клавишу ВВОД, если вы хотите использовать значения по умолчанию, как показано ниже:
  • Создайте базу данных, используя:
     создать базу данных gfgbackend;
  • Переключитесь на эту базу данных, используя:



      c gfgbackend;
  • Создайте тестовую таблицу, используя:
     создать тестовую таблицу (id int не null);
  • Вставьте значения в тестовую таблицу, используя:
     вставить в тестовые значения (1);  
    вставить в тестовые значения (2);
  • Теперь попробуйте проверить, вставлены ли данные в таблицу, используя:
     выберите * из теста; 

Шаги по созданию серверной части:

  • Перейдите в каталог, в котором вы хотите создать проект
  • Инициализируйте проект узла, используя:
     npm init
  • Введите имя проекта и другие сведения или нажмите Enter, если вы хотите использовать значение по умолчанию.
  • Установить экспресс с помощью npm
     npm install --save express
  • Установите клиент node-postgres с помощью npm
     npm install --save pg
  • Установите модуль postgres для сериализации и десериализации данных JSON в формате hstore с помощью npm.
     npm install --save pg-hstore
  • Создайте файл index.js как точку входа в серверную часть.
  • Теперь установите body-parser с помощью npm
     npm install --save body-parser
  • Теперь добавьте приведенный ниже код в файл index.js, который запускает экспресс-сервер, создает соединение с пулом, а также создает REST API '/ testdata'. Не забудьте добавить свой пароль при создании пула в приведенном ниже коде.




    // Entry Point of the API Server
    const express = require( 'express' );
    /* Creates an Express application.
    The express() function is a top-level
    function exported by the express module.
    */
    const app = express();
    const Pool = require( 'pg' ).Pool;
    const pool = new Pool({
    user: 'postgres' ,
    host: 'localhost' ,
    database: 'gfgbackend' ,
    password: 'postgres' ,
    dialect: 'postgres' ,
    port: 5432
    });
    /* To handle the HTTP Methods Body Parser
    is used, Generally used to extract the
    entire body portion of an incoming
    request stream and exposes it on req.body
    */
    const bodyParser = require( 'body-parser' );
    app.use(bodyParser.json())
    app.use(bodyParser.urlencoded({ extended: false }));
    pool.connect((err, client, release) => {
    if (err) {
    return console.error(
    'Error acquiring client' , err.stack)
    }
    client.query( 'SELECT NOW()' , (err, result) => {
    release()
    if (err) {
    return console.error(
    'Error executing query' , err.stack)
    }
    console.log( "Connected to Database !" )
    })
    })
    app.get( '/testdata' , (req, res, next) => {
    console.log( "TEST DATA :" );
    pool.query( 'Select * from test' )
    .then(testData => {
    console.log(testData);
    res.send(testData.rows);
    })
    })
    // Require the Routes API
    // Create a Server and run it on the port 3000
    const server = app.listen(3000, function () {
    let host = server.address().address
    let port = server.address().port
    // Starting the Server at the port 3000
    })
  • Теперь запустите внутренний сервер, используя:
     узел index.js
  • Откройте браузер и попробуйте маршрутизатор:
     http: // локальный: 3000 / testdata

    Теперь вы можете увидеть данные из тестовой таблицы следующим образом: