相关疑难解决方法(0)

使用node.js/express自动进行HTTPS连接/重定向

我一直在努力通过我正在开发的node.js项目来设置HTTPS.我基本上遵循了此示例的node.js文档:

// curl -k https://localhost:8000/
var https = require('https');
var fs = require('fs');

var options = {
  key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
  cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem')
};

https.createServer(options, function (req, res) {
  res.writeHead(200);
  res.end("hello world\n");
}).listen(8000);
Run Code Online (Sandbox Code Playgroud)

现在,当我这样做

curl -k https://localhost:8000/
Run Code Online (Sandbox Code Playgroud)

我明白了

hello world
Run Code Online (Sandbox Code Playgroud)

正如所料.但如果我这样做

curl -k http://localhost:8000/
Run Code Online (Sandbox Code Playgroud)

我明白了

curl: (52) Empty reply from server
Run Code Online (Sandbox Code Playgroud)

回想起来,这似乎很明显,它会以这种方式工作,但与此同时,最终访问我的项目的人不会输入https:// yadayada,我希望从他们点击的那一刻起所有流量都是https网站.

我怎样才能将所有传入流量传递给https的节点(以及我正在使用的Express),无论是否指定了它?我找不到任何解决此问题的文档.或者只是假设在生产环境中,节点有一些位于它前面的东西(例如nginx)来处理这种重定向?

这是我第一次涉足网络开发,所以如果这是显而易见的事情,请原谅我的无知.

https node.js express

159
推荐指数
12
解决办法
16万
查看次数

在ExpressJS中管道远程文件

我想读一个远程图像并显示它.我可以保存文件但不能正确显示代码.理想情况下,我只想在不进行处理的情况下正确传递文件 - 不确定是否需要tmp文件步骤.此代码不显示任何内容 - 没有错误.我也尝试了res.pipe(响应).

var url = 'http://proxy.boxresizer.com/convert?resize=50x50&source=' + filename

var request = http.get(url, function(response) {

  var tmp = path.join(require('os').tmpDir(), filename);

  var outstream = require('fs').createWriteStream(tmp);

  response.pipe(outstream);
  response.on('end', function() {
    res.set('Content-Type', 'image/jpg');
      res.pipe(outstream);
      res.end();
  });
});
Run Code Online (Sandbox Code Playgroud)

javascript node.js express

18
推荐指数
3
解决办法
2万
查看次数

从回调函数内部使用"纯"Node.js重定向

以下是我的server.js代码的MCVE :

let fs = require('fs');
let http = require('http');

http.createServer((req, res) => {
    // Handles GET requests
    if(req.method == 'GET') {
        let file = req.url == '/' ? './index.html': '/login.html'; // just an example
        fs.readFile(file, (err, data) => {
            res.writeHead(200, {'Content-Type': 'text/html'});
            res.end(data);
        });
    } 

    // Handles POST requests
    else {
        read(status => {
            if(status) {
                res.writeHead(302, {
                    'Location': 'http://localhost:8000/login.html',
                    'Content-Type': 'text/html'
                });
                res.end();
                console.log('Redirected!');
            }
        });
    }
}).listen(8000);

// In my actual script, the `read` function …
Run Code Online (Sandbox Code Playgroud)

javascript ajax redirect node.js server

10
推荐指数
1
解决办法
722
查看次数

标签 统计

node.js ×3

express ×2

javascript ×2

ajax ×1

https ×1

redirect ×1

server ×1