Как добавить пользовательскую функцию в объект ответа в Node.JS
В моем API-приложении у меня есть фиксированный ответ на ошибки в разных частях. Как вы можете видеть, res.status(400).json({"error": "Invalid input"})
повторяется много, в разных файлах и модулях.
Я мог бы создать модульную функцию invalidInput(res)
, которая устранит дублирование, но я действительно хочу, чтобы это была глобальная часть объекта res
, например res.invalidInput()
.
Как я могу сделать это в JS/ Node.JS?
router.get("/users", function(req, res) {
// ...
if (error) {
return res.status(400).json({"error": "Invalid input"});
}
});
router.get("/items", function(req, res) {
// ...
if (error) {
return res.status(400).json({"error": "Invalid input"});
}
});
// etc
Ответы
Ответ 1
Вы можете использовать свое собственное промежуточное программное обеспечение. Добавьте это где-то выше вашего обработчика маршрута:
router.use(function(req, res, next) {
res.invalidInput = function() {
return res.status(400).json({"error": "Invalid input"});
};
next();
});
а затем вы можете сделать res.invalidInput()
в ваших обработчиках маршрутов.