我想在 node.js 的响应和请求中添加新方法。
我怎样才能更有效地做到这一点?
我不明白这是如何在 express.js 中完成的
我想在 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' };