Я узнаю, как сильно я люблю внутреннюю архитектуру. На этой неделе я решил закрыть учебники и запрограммировать свой первый сервер Node Express. Просмотрев множество примеров кода, я начал замечать что-то вокруг одного промежуточного пакета. Способ включения Body-parser в проект может быть субъективным.
Анализатор тела
Что такое Body-парсер? Это промежуточное ПО, которое анализирует поток request
. В большинстве случаев, но не всегда, мы анализируем поток как json
в объекте запроса req.body
.
Как мы его используем? Это так просто, но в то же время субъективно для программиста. Мы собираемся рассмотреть пять способов использования body-parser
, все четыре метода одинаково допустимы в качестве приемлемых методов анализа данных, и все наши методы субъективны. в том, что он становится предпочтением методологии программистов.
Самый распространенный метод
Первый способ — импортировать пакет body-parser
в файл вашего сервера и установить промежуточное ПО следующим образом:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json())
Но нужен ли нам пакет Body-parser?
Я задаю этот вопрос из-за небольшой экспресс-истории. Пакет Body-parser — это промежуточное ПО, которое входило в состав Express, но в начале 2014 года оно было удалено из пакета Express. Вот почему исходный код большинства проектов, который вы просматриваете, включает body-parser
в виде отдельного пакета в проект package.json
.
Однако уже 28 сентября 2017 года Body-parser
был добавлен обратно в Express как зависимость. Поэтому нам технически не нужно добавлять его как зависимость проекта.
Итак, второй метод, который я предлагаю, — это способ немного очистить наш код:
const express = require('express');
const app = express();
app.use(express.json())
Мы удалили пакет и используем Express, который использует Body-parser. Это немного чище. Если я кодирую сервер Express в собственном коде, это мое предпочтение.
Вавилон и ES6
Как насчет использования ES6 и Babel в вашем проекте. Я полностью за. Иногда трудно перенастроить мозг с ES6. Если ваш проект настроен с помощью Babel (это выходит за рамки этой статьи), то как выглядит импорт Body-parser?
Давайте посмотрим на наш первый пример. Это в основном то же самое, за исключением операторов импорта:
import express from 'express';
import bodyParser from 'body-parser';
const app = express();
app.use(bodyParser.json())
Но мы можем немного абстрагироваться от этого примера, используя именованные экспорты. Это действительно очищает вызов json()
:
Помните наш второй пример? Технически нам не нужен импорт Body-parser.
Или мы можем действительно очистить его с помощью именованного экспорта. Если я использую ES6, это мое предпочтение:
import express from 'express';
import { json } from 'body-parser';
const app = express();
app.use(json())
Помните, что каждый метод работает одинаково. Это просто другой способ представить ваш код. Какой метод вы используете?
Сноска
Это было весело. Оставьте комментарий или отправьте мне сообщение в Twitter.
Shameless Plug: Если вы работаете в отличной компании и ищете разработчика программного обеспечения с разнообразным набором навыков и жизненным опытом, отправьте мне сообщение в Twitter и проверьте мой LinkedIn.
Первоначально опубликовано на https://dev.to 20 июля 2020 г.