Илья Федотов веб-разработчик

Создание сайта с использованием Node.js

08.12.2024
70 просмотров
Node.js – это популярная JavaScript-разработка от среды выполнения, ориентированная на быстрый, но при этом маштабируемый серверный код. Хотя началом работы языка было веб-приложение, разработчики также создали удобные облегчения для сокета и сетевые программы, что в значительной степени увеличило его функциональность, позволяю же постройки интернет портала.
Это современная концепция "смарт сервера" – где кода на сервисе исполняется без ограничений и может обрабатывать одновременно запросы многих пользователей. Он подходит для создания сложных высокопроизводительных систем за счет событийно ориентированного асинхронного ввода-вывода, что даёт возможность разрабатываемым web приложениям на нём эффективно использовать один единственный процессорный поток.
Для простоты мы расскажем, какие шаги стоит пройти при построении современного онлайн веб ресурса по технологии Node.js. Создание серверного программирования, сфокусированное не на блокирующих запросах к БД или диску на время выполнения других задач — и является залогом гибкой работы ваших систем.

Инициализация проекта

Начнём мы с инициализации узлового приложения. Вам потребуется Node.js, который уже давно укомплектован модулем npm – менеджер пакетов для этого языка.
```shell

Установка Node.js и пакета node-moduls через менеджер обновлений.

$ su -c "curl -sL https://deb.nodesource.com/setup_14.x | bash -"

Обновление и установки

$ sudo apt-get install -y nodejs

После этого инициализируем новый проэкт:

$ mkdir myProject && cd myProject
$ npm init -y
```

Использование Express.js

Node предлагает множество фреймворков на разные вкусы и цели, одним из самых популярных является Express.js.
```shell
npm install express --save
```
Напишем минимально возможный примитивного сервера:
```javascript
var express = require('express');
var app = express();
var port = 3000;
app.get('/', function(req, res) {
res.send('Hello World!');
});
app.listen(port, function () {
console.log(`Example app listening on port ${port}!`);
});
```

Статические и динамические пути

Вышеуказанный сервер возвращает ответ только для корневого адреса.
Чтобы добавить поддержку статических файлов:
```javascript
app.use(express.static('public'));
```
Здесь все файлы в папке `public` становятся достпными как статические ресурсы нашего домена.

Подключение шаблонизаторов

Динамический контент это то, что делает интернет "живым" и интерактивным. Рассмотрим использование таких популярный пхвнгквшрмцшлфгб как Pug или EJS:
```shell
npm install ejs --save
```
А затем подключим шаблонимцы в Express:
```javascript
app.set('view engine', 'ejs');
```
Обыденные функции для динамического рендеринга, такова возможность отображать данные по переменными из ваших контроллеров прямо на сайте.

Мидлвэр и хэндлеление ошибок

Верные правила использования мидлварй, а также как их нужно ловушках встроить, помогает серверу стать гибким. Мы можем не только логгировать запросы, но также обрабатывать ошибки:
```javascript
app.use((req, res) => next({status: 403, message: 'Невозможно обратная связь.'}));
```
Уровенные по цепочки мидлварйз подобрать к хэндлерам на пролетах эксепшенов.
```javascript
app.use(errorHandler);
function errorHandler(err, req, res) {
// логгируем ошибку
console.error('Произошла следующающая ошибка: %s'.error);
// Определять тип ответного статуса, отображение дружелюбное сообщение для конечного пользователя.
res.status(500);
}
```

Первоначализация базы данных

Современный web сайты сложно представить без интерактивным обмену данными, а это означает настройка БД. Многочисленные технологии и библиотеки упрощает взаимодействие с базой в проектах Node.js.

MongoDB & Mongoose

```shell
npm install mongoose --save
```

Интеграция сессий и безопасности

Последнее и основании, не менее важен вопрос интегирвтоин аутентикациии ин логина наших веб. Мы используем пакет Express session для сохранения состояния пользователей между их запросами, куки могут быть безопасными засекреченной помощью Helmet.js.
```shell
npm install express-session helmet --save
```
Использование HTTPS для передачи конфиденциальных данных можно осуществить с сертификатов от Let’s Encrypt:

SSL Certbot

```shell
wget https://dl.eff.org/certbot-auto && chmod a+x certbot-auto
./certbot-auto --server https://acme-v02.api.letsencrypt.org/directory -d your_domain.com
```

Заключение

На основании этого вы сможете начать создание стабильных сайтов на базе Node.js, а широкий ассортимент готовых инструментов и библиотек лишь упрощает этот процесс.

Ключевые слова: Node.js, Express.js, веб-разработка, серверное программирование

- руководство по созданию динамических интернет ресурсов с использованием фреймворков и инструментов в экосистеме Node.js. Освещаются основные аспекты разработки веб-приложений, включая инициализацию проекта, настройку сервера с помощью Express, обработку статических файлов, динамического рендеринга страниц, использование мидлваров и контроллеров ошибок, баз данных MongoDB через Mongoose, интеграция сессий и обеспечение безопасности передачи данных.

ИП Федотов И.А - Создание сайтов, веб-проектов и веб-приложений. Все права сохранены.

Продолжая, Вы принимаете нашу политику использования cookies. Мы используем файлы cookies для улучшения работы сайта. Чтобы узнать больше, ознакомьтесь с нашей политикой обработки персональных данных далее "ПОПД".
Хорошо, с ПОПД ознакомлен(а)