Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.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 Can';t修改sailsJS中请求对象的协议选项_Javascript_Node.js_Heroku_Express_Sails.js - Fatal编程技术网

Javascript Can';t修改sailsJS中请求对象的协议选项

Javascript Can';t修改sailsJS中请求对象的协议选项,javascript,node.js,heroku,express,sails.js,Javascript,Node.js,Heroku,Express,Sails.js,我正在使用检查req.secure选项的库来继续操作,不会出现错误。但我的应用程序也部署到heroku,我使用自定义中间件检查“x-forwarded-proto”头并将req.secure设置为true,将req.protocol设置为“https”,但实际上这些选项在这些操作之后保持不变。在将值分配给req.secure和req.protocol之后,我立即进行了调试输出,我可以看到这些选项没有被修改。它肯定会通过这些代码,因为我看到了“x-forwarded-proto”=“https”案

我正在使用检查req.secure选项的库来继续操作,不会出现错误。但我的应用程序也部署到heroku,我使用自定义中间件检查“x-forwarded-proto”头并将req.secure设置为true,将req.protocol设置为“https”,但实际上这些选项在这些操作之后保持不变。在将值分配给req.secure和req.protocol之后,我立即进行了调试输出,我可以看到这些选项没有被修改。它肯定会通过这些代码,因为我看到了“x-forwarded-proto”=“https”案例的调试信息。在express js中设置这样的变量有什么限制吗

SailsJS v0.10.5

我的自定义中间件在config/http.js中的代码:

if (req.headers['x-forwarded-proto'] === 'https'){
          req.secure = true;
          req.protocol = 'https';

          sails.log('Secure headers detected: secure - ', req.secure, ', protocol - ', req.protocol);
}
输出:

debug: Secure headers detected: secure - false , protocol - http

其实我找到了这种行为的原因。在expressJS中定义的请求对象req,具有类似于
协议
安全
的属性,这些属性是使用
\uu定义器
函数定义的。此函数是V8的功能,它设置在日志记录对象中不可见的值,并且不可设置,只有在您将使用
\uu定义设置器\uuuu
功能定义设置器的情况下

更多信息可在此处找到: