我試圖從http上(How to create a simple http proxy in node.js?)接受的答案轉換爲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'當我嘗試訪問一個頁面時拋出錯誤和錯誤:throw er; //未處理的 '錯誤' 事件 - 錯誤:34410095616:錯誤:140770FC:SSL例程:SSL23_GET_SERVER_HELLO:未知協議:../ DEPS/OpenSSL的/ OpenSSL的/ SSL/s23_clnt.c:787 – 2014-09-13 06:08:50
這奏效了,謝謝你。 – 2014-09-14 05:09:32