在我的节点js https服务器中出现错误

时间:2019-03-31 10:39:22

标签: node.js

我已经建立了一个https服务器,并将我的证书全部存放在这里,看来没有问题。我的问题是,每当我运行得到的代码

var proxy = new http_proxy.HttpProxy({
            ^

TypeError: http_proxy.HttpProxy is not a constructor
    at Object.<anonymous> (C:\Users\Adam.Wolarczuk\Desktop\Projects\nodetest\server.js:11:13)
    at Module._compile (internal/modules/cjs/loader.js:701:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
    at Module.load (internal/modules/cjs/loader.js:600:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
    at Function.Module._load (internal/modules/cjs/loader.js:531:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:754:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)

我试图在网络上找到问题,但似乎无法使其正常工作。

这是我的代码:

var http_proxy = require ('http-proxy'),
    https = require('https'),
    fs = require('fs');

var privateKey  = fs.readFileSync("privatekey.pem").toString();
var cert        = fs.readFileSync("newcert.pem").toString();

var options = {key: privateKey, cert: cert };

var proxy = new http_proxy.HttpProxy({
    target:{
    host: "localhost",
    port: 8080
}

});

var s =https.createServer(options, function (req, res) {
    console.log("Proxying!");
    proxy.proxyRequest(req, res);

});

s.listen(8443);

1 个答案:

答案 0 :(得分:0)

文档没有指定您的语法,也没有库导出您要初始化的模块。 RTFM https://www.npmjs.com/package/http-proxy

编辑

即使文档非常好,这还是带HTTPS节点服务器代理的示例:

var http_proxy = require ('http-proxy'),
    https = require('https'),
    fs = require('fs');

var privateKey  = fs.readFileSync("privatekey.pem").toString();
var cert        = fs.readFileSync("newcert.pem").toString();

var options = {key: privateKey, cert: cert };

var proxy = httpProxy.createServer({
  ssl: {
    key: privateKey,
    cert
  },
  target: 'https://localhost:9010', // Send it anywhere
  secure: true // Depends on your needs, could be false.
}).listen(443);

var s = https.createServer(options, function (req, res) {
    console.log("Proxying!");
    proxy.web(req, res);
});

s.listen(8443);