Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将所有http请求重定向到sails js中的https_Javascript_Node.js_Sails.js - Fatal编程技术网

Javascript 将所有http请求重定向到sails js中的https

Javascript 将所有http请求重定向到sails js中的https,javascript,node.js,sails.js,Javascript,Node.js,Sails.js,我正在尝试找出如何将所有HTTP请求重定向到Sails JS中的HTTPS0.11.0。 我尝试了下面的代码,但不起作用 var express = require("express"), app = express(); app.get('*', function(req,res) { if(req.isSocket){ return res.redirect('wss://' + req.headers.host + req.u

我正在尝试找出如何将所有HTTP请求重定向到Sails JS中的HTTPS0.11.0。

我尝试了下面的代码,但不起作用

var express = require("express"),
     app = express();

app.get('*', function(req,res) {  

    if(req.isSocket){           
        return res.redirect('wss://' + req.headers.host + req.url)  
    }
    else{
        return res.redirect('https://' + req.headers.host + req.url)    
    }

}).listen(80);

我使用nginx进行重定向。 nginx.conf文件中的配置

server {
        listen   80; 
        server_name example.com;
        rewrite     ^ https://example.com$request_uri? permanent;
}

您可以使用Sails中的http中间件来实现这一点

在config/http.js文件中,向中间件对象添加类似这样的函数

requireHttps: function(req, res, next) {
  if (!req.secure) {
    return res.redirect('https://' + req.get('host') + req.url);
  }

  return next();
},
或者像这样(如果您使用Amazon弹性负载平衡器,它可以通过http与您的服务器通信):

然后简单地将“requireHttps”添加到中间件对象中的order数组中,如下所示:

order: [
    'startRequestTimer',
    'cookieParser',
    'session',
    'passportInit',
    'passportSession',
    'bodyParser',
    'handleBodyParserError',
    'compress',
    'methodOverride',
    'poweredBy',
    '$custom',
    'requireHttps',
    'router',
    'www',
    'favicon',
    '404',
    '500',
],

HTTPS永远不应该接触端口80,所以我怀疑你们的服务器听到了什么…使用nginx前端服务器,遵循这一点,没有nginx有可能吗?sails js是否提供了任何解决方案?这个问题可能重复:尽管我很感激那里的答案引用了旧版本的sails.js。
order: [
    'startRequestTimer',
    'cookieParser',
    'session',
    'passportInit',
    'passportSession',
    'bodyParser',
    'handleBodyParserError',
    'compress',
    'methodOverride',
    'poweredBy',
    '$custom',
    'requireHttps',
    'router',
    'www',
    'favicon',
    '404',
    '500',
],