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
Node.js localAddress的节点js环境变量_Node.js - Fatal编程技术网

Node.js localAddress的节点js环境变量

Node.js localAddress的节点js环境变量,node.js,Node.js,网络是否有类似于NODE_TLS_REJECT_UNAUTHORIZED的环境变量?我使用了许多通过套接字/http连接到外部服务的节点模块,这些模块不提供设置localAddress的选项 如果不存在这样一个变量,请考虑任何想法/解决方法。谢谢 没有这样的环境变量 作为一种解决方法,您可以在存在特定环境变量时使用monkeypatchnet.Socket#connect,并将其用作本地地址: const net = require('net'); if (process.env.LOCAL_

网络是否有类似于NODE_TLS_REJECT_UNAUTHORIZED的环境变量?我使用了许多通过套接字/http连接到外部服务的节点模块,这些模块不提供设置localAddress的选项


如果不存在这样一个变量,请考虑任何想法/解决方法。谢谢

没有这样的环境变量

作为一种解决方法,您可以在存在特定环境变量时使用monkeypatch
net.Socket#connect
,并将其用作本地地址:

const net = require('net');

if (process.env.LOCAL_ADDRESS) {
  const connect = net.Socket.prototype.connect;

  net.Socket.prototype.connect = function(options) {
    if (! options.localAddress) {
      options.localAddress = process.env.LOCAL_ADDRESS;
    }
    return connect.apply(this, arguments);
  };
}
使用:

$ env LOCAL_ADDRESS=xx.xx.xx.xx node your-script.js
这应该在代码的早期加载,并且只适用于(最终)使用
net.Socket#connect
的模块,这可能会排除自行建立连接的本机模块(如某些数据库驱动程序)


为了解决这些问题,您需要求助于外部解决方案,如(我从未使用过这种解决方案,因此无法说明它是否有效)。

外部服务上的本地地址是什么意思,您可能有远程地址,请澄清我指的是套接字应连接的本地地址