Nodeunblocker ist nicht nur eine benutzerdefinierte Proxy-Lösung, sondern ermöglicht auch das Abfangen und Ändern von ausgehenden und eingehenden Anfragen über Middleware.
Wir können diese Funktion nutzen, um das Laden bestimmter Ressourcen basierend auf dem Ressourcentyp oder der Domain zu blockieren, den User-Agent zu aktualisieren, zurückgegebene Inhalte zu ersetzen oder Authentifizierungstoken in Request-Header einzufügen.
Eine vollständige Liste mit Beispielen findest du hier.
Beginnen wir damit, eine Middleware zum Festlegen eines benutzerdefinierten User-Agents zu erstellen. Erstellen Sie eine Datei namens user-agent.js und fügen Sie diesen Code hinzu:
module.exports = function(userAgent) {
function setUserAgent(data) {
data["headers"]["user-agent"] = userAgent
}
return setUserAgent
}
Diese Funktion akzeptiert den benutzerdefinierten User-Agent über den Parameter userAgent und registriert ihn mithilfe der Funktion setUserAgent im Datenobjekt. Node Unblocked ruft die Funktion setUserAgent bei jeder Anfrage auf.
const userAgent = require('./user-agent')
Wir setzen den Parameter requestMiddleware im Unblocker-Konstruktor und sollten nun startklar sein.
const unblocker = new Unblocker({
prefix: '/proxy/',
requestMiddleware: [userAgent("nodeunblocker/1.5")]
})
Unsere Datei „index.js“ sollte nun wie folgt aussehen:
const express = require('express')
const Unblocker = require('unblocker')
const userAgent = require('./user-agent')
const app = express()
const port = 8080
const unblocker = new Unblocker({
prefix: '/proxy/',
requestMiddleware: [userAgent("nodeunblocker/1.5")]
})
app.use(unblocker)
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(process.env.PORT || 8080, () => {
console.log(`Example app listening on port ${port}`)
}).on('upgrade', unblocker.onUpgrade)
Es ist an der Zeit zu prüfen, ob unser Code funktioniert. Wir müssen die URL von Node-Unblocker ändern, um sicherzustellen, dass die Header ordnungsgemäß aktualisiert werden.
Starten Sie die Anwendung neu und öffnen Sie diese URL in Ihrem Browser:
http://localhost:8080/proxy/https://www.whatsmyua.info/
Wenn die Seite „nodeunblocker/1.5“ anzeigt, funktioniert unsere Middleware.