Javascript 如何在响应和请求中添加新方法

Javascript 如何在响应和请求中添加新方法,javascript,node.js,express,prototypal-inheritance,Javascript,Node.js,Express,Prototypal Inheritance,我想在node.js的响应和请求中添加新方法 我怎样才能更有效地完成它 我不明白在express.js中是如何做到这一点的。作为JavaScript,有很多方法可以做到这一点。对于express,我认为最合理的模式是将函数添加到早期中间件中的每个请求实例: //just an example function getBrowser() { return this.get('User-Agent'); } app.use(function (req, res, next) { re

我想在node.js的响应和请求中添加新方法

我怎样才能更有效地完成它


我不明白在express.js中是如何做到这一点的。作为JavaScript,有很多方法可以做到这一点。对于express,我认为最合理的模式是将函数添加到早期中间件中的每个请求实例:

//just an example
function getBrowser() {
    return this.get('User-Agent'); 
}

app.use(function (req, res, next) {
  req.getBrowser = getBrowser;
  next();
});

app.get('/', function (req, res) {
    //you can call req.getBrowser() here
});
在express.js中,这是通过向http.IncomingMessage的原型添加附加函数来实现的

这有时被称为“猴子补丁”或“自由补丁”。人们对这是美妙的还是可怕的看法不一。我上面的方法更加谨慎,不太可能对node.js进程中运行的其他代码造成预期干扰。要添加您自己的:

var http = require('http');
http.IncomingMessage.prototype.getBrowser = getBrowser; //your custom method

向express.response对象添加方法:

const express = require('express');
express.response.getName = () => { return 'Alice' };

我感兴趣的是如何在express.js中实现这一点。在示例
app.get('/',function(req,res){})中,如何对传入回调函数的express.js进行定制请求和响应是的,我的答案是express。由于缺少示例代码和解释您的尝试,您的问题即将结束。我试图了解在express.js中是如何做到这一点的,但我在其中没有找到相同的方法。我认为这是不同的做法。我在express.js的下一行
var req=exports=module.exports={{uuuuuuu proto\uuuuuuuuu:http.IncomingMessage.prototype}。我认为这里发生了请求的基本功能继承和添加自定义方法后的继承。我想知道接下来会发生什么。解释express是如何添加的。