在Express和Node.js中,是否可以扩展或覆盖响应对象的方法?

在Express和Node.js中,是否可以扩展或覆盖响应对象的方法?,第1张

在Express和Node.js中,是否可以扩展或覆盖响应对象的方法?

最好的主意是在响应对象的原型中添加一个自定义方法:

var express = require("express");express.response.customRender = function() {    // your stuff goes here};

每个

res
对象都应该可以访问此功能。

您可以阅读源代码,以了解它们如何扩展本机对象。基本上他们在做原型链:

express / lib / response.js

var res = module.exports = {  __proto__: http.ServerResponse.prototype};

这个对象成为新创建的响应对象(来自connect框架)的原型:

res.__proto__ = app.response;

app.response
只是
res
上面定义的别名)。请注意,
__proto__
属性是对对象原型的引用。

但是被警告。首先,

__proto__
它不是Ecmascript的一部分(在其他Javascript实现中可能不可用)。其次:通常,您将使用继承
Object.create
__proto__
直接在对象上设置是猴子修补,通常是不好的做法,它可能会破坏很多东西)。在此处阅读有关此内容的更多信息:

https://developer.mozilla.org/zh-
CN/docs/Web/Javascript/Guide/Inheritance_and_the_prototype_chain



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5010374.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存