Nodejs
Прекратите использовать начальный проект Node.js и создайте свой собственный
Эта статья основана на том, как я настраивал серверную часть своего личного веб-сайта с помощью expressjs, потому что я хочу переместить все API-интерфейсы из моей папки pages/api
в nextjs, чтобы использовать sqlite3 для хранения данных.
Содержание статьи:
- Установить все с нуля
- Структурируйте папку вашего проекта
- Лучшие шаблоны кодирования экспресс-сервера
Дополнительную информацию можно найти на 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. Я тоже в Твиттере. Не стесняйтесь оставлять любые вопросы в комментариях ниже. Буду рад помочь!