Создание серверной части REST API с использованием Node.js, Express и Postgres
Опубликовано: 29 Июля, 2021
Бэкэнд JavaScript может быть разработан с использованием Node.js, Express и Postgres. Этот бэкэнд может выполнять операции запросов в базе данных PostgreSQL и предоставлять статус или данные в REST API.
Требования к установке:
- Node.js:
- Установите Node.js в Windows
- Установите Node.js в Linux
- PostgreSQL:
- Установите Postgres в Windows
- Установите Postgres в Linux
- Установите Postgres на Mac
Тестирование на успешную установку:
- Node.js:
- Откройте командную строку или терминал и введите:
узел -v
В выводе должен быть показан пример номера версии:
Версия 12.14.0
Примечание. Если отображается команда не найдена, значит, node.js не установлен.
- Откройте командную строку или терминал и введите:
- 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
Теперь вы можете увидеть данные из тестовой таблицы следующим образом: