最好的主意是在响应对象的原型中添加一个自定义方法:
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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)