如何将自定义函数添加到Node.JS中的响应对象

在我的API应用程序中,我对不同部分的错误有一个固定的响应。 正如你可以看到res.status(400).json({"error": "Invalid input"})重复了很多,实际上在不同的文件和模块中。

我可以创build模块函数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 

您可以使用自己的自定义中间件。 把这个添加到你的路由处理器的上面:

 router.use(function(req, res, next) { res.invalidInput = function() { return res.status(400).json({"error": "Invalid input"}); }; next(); }); 

然后你可以在你的路由处理程序中执行res.invalidInput()