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

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