Я пытаюсь преобразовать принятый ответ на (How to create a simple http proxy in node.js?) с http на https.Node.js - слушатель должен быть функцией ошибки
Когда я пытаюсь получить доступ к прокси из моего браузера, сервер завершает работу и выдает эту ошибку:
events.js:171
throw TypeError('listener must be a function');
^
TypeError: listener must be a function
Вот мой код:
var https = require('https');
var fs = require('fs');
var ssl = {
ca: fs.readFileSync("cacert.pem"),
key: fs.readFileSync("key.pem"),
cert: fs.readFileSync("cert.pem")
};
https.createServer(ssl, onRequest).listen(3000, '127.0.0.1');
function onRequest(client_req, client_res) {
console.log('serve: ' + client_req.url);
var options = {
hostname: 'www.example.com',
port: 80,
path: client_req.url,
method: 'GET'
};
var ssl = {
ca: fs.readFileSync("cacert.pem"),
key: fs.readFileSync("key.pem"),
cert: fs.readFileSync("cert.pem")
};
var proxy = https.request(ssl, options, function(res) {
res.pipe(client_res, {
end: true
});
});
client_req.pipe(proxy, {
end: true
});
}
Как вы можете видеть, я сделал очень небольшие изменения, и я не уверен, как это исправить.
Любые идеи?
удаление «ssl» из прокси-сервера var throws и error при попытке доступа к странице: throw er; // Необработанное событие «error» - Ошибка: 34410095616: ошибка: 140770FC: SSL-процедуры: SSL23_GET_SERVER_HELLO: неизвестный протокол: ../ deps/openssl/openssl/ssl/s23_clnt.c: 787 –
Это сделало трюк, спасибо. –