10 библиотек и фреймворков Node.js, улучшающих веб-разработку

10 библиотек и фреймворков Node.js, улучшающих веб-разработку

12 апреля 2023 г.

Вы хотите улучшить свои знания в области разработки Node.js? Нет необходимости искать дальше, так как мы составили список из 10 лучших библиотек и фреймворков Node.js, которые сейчас в моде и могут помочь вам в ваших проектах веб-разработки. Эти инструменты могут помочь вам оптимизировать процесс разработки и повысить производительность ваших приложений, независимо от того, являетесь ли вы новичком или опытным разработчиком.

Давайте немедленно изучим эти библиотеки и фреймворки!

<сильный>1. Express.js 🚀

Популярная платформа веб-приложений Node.js Express.js предлагает простой и гибкий метод создания онлайн-приложений. Он портативный и может использоваться для создания различных приложений, таких как веб-приложения, RESTful API и даже приложения реального времени с использованием WebSockets. Вот пример кода для создания базового HTTP-сервера с помощью Express:

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(3000, () => {
  console.log('Example app listening on port 3000!');
});

<сильный>2. Socket.io 🌐

Библиотека JavaScript под названием Socket.io обеспечивает двустороннюю связь между сервером и клиентом в режиме реального времени. Это очень полезно при создании приложений реального времени, таких как программы чата, системы онлайн-игр и инструменты для создания команды. Вот иллюстрация того, как доставлять сообщения и управлять входящими соединениями с помощью Socket.io: n

const io = require('socket.io')(http);

io.on('connection', (socket) => {
  console.log('a user connected');

  socket.on('chat message', (msg) => {
    console.log('message: ' + msg);
    io.emit('chat message', msg);
  });

  socket.on('disconnect', () => {
    console.log('user disconnected');
  });
});

<сильный>3. Мангуст 🍃

Инструмент объектного моделирования MongoDB, созданный для асинхронных сред, называется Mongoose. Для моделирования данных для вашего приложения он предлагает простое решение на основе схемы и включает в себя встроенное приведение типов, проверку, построение запросов и перехватчики бизнес-логики. Вот иллюстрация того, как использовать Mongoose для определения схемы и построения модели:

const mongoose = require('mongoose');

const userSchema = new mongoose.Schema({
  name: String,
  age: Number,
  email: String
});

const User = mongoose.model('User', userSchema);

<сильный>4. Nodemailer 📧

Отправка электронной почты стала возможной благодаря модулю Nodemailer для приложений Node.js. Он предлагает удобный API для отправки электронных писем с использованием нескольких транспортных протоколов, таких как SMTP, sendmail или Amazon SES. Вот иллюстрация того, как отправить электронное письмо с использованием транспорта SMTP с помощью Nodemailer:

const nodemailer = require('nodemailer');

const transporter = nodemailer.createTransport({
  host: 'smtp.gmail.com',
  port: 465,
  secure: true,
  auth: {
    user: 'your@gmail.com',
    pass: 'yourpassword'
  }
});

const mailOptions = {
  from: 'your@gmail.com',
  to: 'recipient@gmail.com',
  subject: 'Hello from Node.js',
  text: 'Hello, this is a test email sent from Node.js!'
};

transporter.sendMail(mailOptions, (error, info) => {
  if (error) {
    console.log(error);
  } else {
    console.log('Email sent: ' + info.response);
  }
});

<сильный>5. Passport.js 🔑

Популярное промежуточное ПО для аутентификации для Node.js под названием Passport.js предлагает простой и адаптируемый API для аутентификации пользователей в ваших онлайн-приложениях. Он поддерживает ряд различных типов аутентификации, включая локальную аутентификацию, OAuth, OpenID и другие. Вот иллюстрация того, как аутентифицировать пользователя с помощью имени пользователя и пароля с помощью Passport.js:

const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;

passport.use(new LocalStrategy(
  function(username, password, done) {
    User.findOne({ username: username }, function(err, user) {
      if (err) { return done(err); }
      if (!user) { return done(null, false); }
      if (!user.validPassword(password)) { return done(null, false); }
      return done(null, user);
    });
  }
));

<сильный>6. Async.js ⏰

Служебный модуль Node.js под названием Async.js предлагает ряд функций для обработки асинхронных процессов более понятным и контролируемым образом. Он имеет множество функций, включая водопад, параллель, серию и многое другое. Ниже показано, как использовать функцию async.parallel для одновременного выполнения нескольких асинхронных задач:

const async = require('async');

async.parallel([
    function(callback) {
        setTimeout(function() {
            callback(null, 'one');
        }, 200);
    },
    function(callback) {
        setTimeout(function() {
            callback(null, 'two');
        }, 100);
    }
],
function(err, results) {
    console.log(results);
    // output: ['one', 'two']
});

Н 7. GraphQL 🔍

Язык запросов и среда выполнения для API под названием GraphQL обеспечивают более эффективную, мощную и адаптируемую связь между клиентом и сервером. Типы данных и процессы определяются с помощью метода на основе схемы, и клиенты могут точно указать, какие данные им требуются. Вот иллюстрация того, как определить преобразователь GraphQL и схему для простого API: n

const { GraphQLSchema, GraphQLObjectType, GraphQLString } = require('graphql');

const schema = new GraphQLSchema({
  query: new GraphQLObjectType({
    name: 'HelloWorld',
    fields: {
      message: {
        type: GraphQLString,
        resolve: () => 'Hello World!'
      }
    }
  })
});

<сильный>8. Аксиос 📡

Axios – это HTTP-клиент на основе обещаний, который работает с Node.js и браузером, чтобы быстро и легко выполнять HTTP-запросы и обрабатывать ответы. Он совместим с несколькими функциями, включая перехватчики, отмену и другие. Вот иллюстрация того, как сделать HTTP-запрос GET с помощью Axios и обработать ответ: n

const axios = require('axios');

axios.get('https://jsonplaceholder.typicode.com/posts/1')
  .then(function (response) {
    console.log(response.data);
  })
  .catch(function (error) {
    console.log(error);
  });

<сильный>9. Уинстон 📝

Winston — это гибкий пакет ведения журналов для Node.js, предлагающий ряд функций, таких как многочисленные транспорты, уровни журналов и варианты форматирования. Это позволяет вести журнал в различных местах, включая консоль, файл, базу данных и многое другое. Вот иллюстрация того, как регистрировать сообщение с помощью Winston с различными уровнями ведения журнала:

const winston = require('winston');

const logger = winston.createLogger({
  level: 'info',
  format: winston.format.json(),
  defaultMeta: { service: 'user-service' },
  transports: [
    new winston.transports.Console(),
    new winston.transports.File({ filename: 'error.log', level: 'error' })
  ]
});

logger.error('This is an error message');
logger.warn('This is a warning message');
logger.info('This is an info message');

<сильный>10. Nest.js 🐦

Прогрессивная платформа Node.js под названием Nest.js используется для создания масштабируемых и эффективных серверных приложений. Он предлагает структуру внедрения зависимостей, модульную архитектуру и простой интерфейс командной строки для создания стандартного кода. Дополнительные поддерживаемые функции включают маршрутизацию, промежуточное ПО, аутентификацию и многое другое. Вот иллюстрация того, как использовать Nest.js для создания простой конечной точки API:

import { Controller, Get } from '@nestjs/common';

@Controller('hello')
export class HelloController {
  @Get()
  getHello(): string {
    return 'Hello World!';
  }
}

Заключение

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

:::подсказка Также опубликовано здесь

:::

:::информация Отказ от ответственности: этот блог был создан и отформатирован с использованием инструментов искусственного интеллекта, которые были оптимизированы для определенных ключевых слов и фраз. Несмотря на то, что были предприняты все усилия для обеспечения точности и качества содержания, на него не следует полагаться исключительно как на профессиональную или юридическую консультацию. Взгляды и мнения, выраженные в этом блоге, принадлежат автору и не обязательно отражают официальную политику или позицию какого-либо агентства или организации. Читателям рекомендуется провести собственное исследование и обратиться за советом к квалифицированным специалистам, прежде чем принимать какие-либо решения на основе информации, представленной в этом блоге.

:::


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE