как передавать переменные между middleware в express js

Аватар пользователя Maksim Litvinov
Maksim Litvinov
3 дня назад

В Express.js middleware выполняются последовательно, что позволяет нам передавать данные между ними. Есть несколько способов передачи переменных между middleware:

  • Использование объекта req: Объект req представляет запрос, поступивший от клиента, и доступен во всех middleware. Вы можете добавлять данные к объекту req в одном middleware и потом обращаться к этим данным в другом middleware. Например:
app.use((req, res, next) => {
    req.customData = 'Hello, world!';
    next();
});

app.use((req, res, next) => {
    console.log(req.customData); // Выведет 'Hello, world!'
    next();
});
  • Использование res.locals: Объект res.locals позволяет добавлять данные, доступные только в рамках текущего запроса. Эти данные доступны во всех middleware и в представлениях. Пример:
app.use((req, res, next) => {
    res.locals.user = { name: 'John', age: 30 };
    next();
});

app.use((req, res, next) => {
    console.log(res.locals.user.name); // Выведет 'John'
    next();
});
  • Передача данных через параметры middleware: Вы можете передавать данные между middleware, используя параметры функции middleware. Например:
app.use((req, res, next) => {
    req.customData = 'Hello, world!';
    next();
});

app.use((req, res, next) => {
    console.log(req.customData); // Выведет 'Hello, world!'
    next();
});
  • Использование app.set и app.get: С помощью app.set(name, value) и app.get(name) можно сохранять и получать данные на уровне вашего приложения. Однако, следует быть осторожными с использованием этого метода, так как данные будут доступны глобально. Пример:
app.set('customData', 'Hello, world!');

app.use((req, res, next) => {
    console.log(app.get('customData')); // Выведет 'Hello, world!'
    next();
});
0 0
Бесплатно
Основы JavaScript
Теория и практика с нуля
Перейти к курсу