Nodejs

Прекратите использовать начальный проект Node.js и создайте свой собственный

Эта статья основана на том, как я настраивал серверную часть своего личного веб-сайта с помощью expressjs, потому что я хочу переместить все API-интерфейсы из моей папки pages/api в nextjs, чтобы использовать sqlite3 для хранения данных.

Содержание статьи:

  1. Установить все с нуля
  2. Структурируйте папку вашего проекта
  3. Лучшие шаблоны кодирования экспресс-сервера

Дополнительную информацию можно найти на https://betterfullstack.com

Установить все с нуля

Создать приложение Node очень просто. Мы начинаем с команды mkdir backend, чтобы создать новую папку с именем backend из папки нашего проекта.

Я предложил вам сначала создать папку проекта, а затем внутри нее создать папки backend и frontend.

Теперь cd backend и запустите npm init, чтобы создать package.json файл с некоторой базовой информацией, как показано ниже:

Следуя руководству от expressjs.com, запустите npm i express, чтобы установить экспресс, создайте index.js и скопируйте код с hello world page на index.js.

Третий шаг - обновить package.json, добавив новый сценарий "dev": "node index.js" и запустите из командной строки npm run dev, чтобы запустить проект.

Вам необходимо установить еще три важные библиотеки: _12 _, _ 13 _ и nodemon.

Время объяснения.

Зачем нам body-parser? Эта библиотека будет анализировать тела входящих запросов в JSON в промежуточном программном обеспечении перед вашими обработчиками, доступными в свойстве req.body.

Зачем нам cors? Эта библиотека позволит использовать CORS с различными параметрами. Проще говоря, это поможет вам разобраться с проблемой междоменного доступа :)

Зачем мне nodemon? Эта библиотека автоматически перезапустит приложение узла при обнаружении изменений файлов в каталоге. Без него вам придется закрыть приложение и снова запустить npm run dev. ДОВЕРЬТЕ мне, палец утомит :)

Потому что nodemon предназначен только для разработки. Итак, мы добавили его в devDependencies.

Не забудьте обновить скрипт, как показано ниже:

В следующей части мы переходим к структурированию проекта.

Папка проекта структуры

Лично я считаю, что необходимы 4 основные папки: маршруты, контроллеры и промежуточное ПО, миграции ( Об этом я расскажу в следующей статье). В остальном вы можете создать себя в зависимости от вашей ситуации.

ПРИМЕЧАНИЕ. В этой статье не будет рассказываться о том, как подключить базу данных и выполнить миграцию SQL. Позже я планирую написать об этом целую статью.

Время объяснения:

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

Теперь мы переходим к следующей части, чтобы добавить код в эти папки.

Лучшие шаблоны кодирования экспресс-сервера

Этот раздел - моя личная идея для реализации. Не стесняйтесь поправлять меня, если я ошибаюсь, добавляя свой комментарий ниже.

Чтобы продемонстрировать, я реализую прототип для пользователя.

Во-первых, начну с user.controller.js. Идея состоит в том, что я создам функцию с именем userController, которая включает все методы.

Для userController я создам несколько методов, например:

  • логин: это будет обрабатывать такие вещи для входа в систему, как проверка пользователя, генерировать токен и возвращать информацию о пользователе.
  • logout: это удалит токен пользователя.
  • getUser: получить информацию об одном человеке
  • updateUser: обновить информацию об отдельном пользователе.
  • deleteUser: удалить одного пользователя
  • getAllUser: вернуть всех существующих пользователей

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

Во-вторых, есть некоторые API-интерфейсы, которые не нуждаются в аутентификации, такие как вход в систему, выход из системы, API-интерфейсы, которые используются для получения информации для всех страниц без входа. А некоторые вызываются после аутентификации. Итак, я добавлю промежуточное ПО для проверки аутентификации.

В этом промежуточном программном обеспечении я сделаю 4 основные вещи:

  • подтвердите «Авторизация» в заголовке
  • проверить веб-токен JSON
  • получить идентификатор из токена и проверить, существует ли пользователь или нет
  • добавить дополнительную информацию в req

Далее я определю маршрутизацию. Вы можете понять, что это для сопоставления конечной точки и контроллера вместе.

За исключением user/login, я использую промежуточное ПО для проверки всех запросов. Потому что нам не нужна аутентификация для входа в систему.

Итак, у нас будет:

  • пользователь / логин: POST
  • пользователь / выход: POST
  • пользователи: GET
  • пользователь /: id: GET, PUT, DELETE

Наконец, нам нужно обновить index.js:

  • применить промежуточное ПО для парсера тела
  • обрабатывать кросс-домен
  • добавить маршрутизацию

Примечание: CORS очень важен. Это решит проблему перекрестного домена за вас. Просто добавьте свой внешний домен в список, чтобы разрешить запрос.

Заключение

В этой статье я сосредоточился на том, как настроить приложение Node с нуля и ограничить количество ненужных вещей в исходном коде.

Надеюсь, эта статья оказалась для вас полезной! Вы можете следить за мной на Medium. Я тоже в Твиттере. Не стесняйтесь оставлять любые вопросы в комментариях ниже. Буду рад помочь!