有没有办法检查nodejs连接的来源?
在javascript中我们做
if (window.location.host == "localhost")
{
// Do whatever
}
但我不知道如何在nodejs中执行此操作,我想做(然后我只需要为git repo维护1个文件夹)
if (window.location.host == "localhost"){
// connect to localhost mongodb
}else{
// connect to mongodb uri
}
答案 0 :(得分:4)
var os = require('os');
var database_uri;
if(os.hostname().indexOf("local") > -1)
database_uri = "mongodb://localhost/database";
else
database_uri = "mongodb://remotehost/database";
//Connect to database
mongoose.connect(database_uri,
function(err){
if(err) console.log(err);
else console.log('success');});
答案 1 :(得分:2)
检查req.headers.host
。如果是localhost或127.0.0.1使用你的逻辑来做localhost的东西。
http://nodejs.org/api/http.html#http_http_incomingmessage
req.headers.host
还包含端口,您可能需要在检查前剪切它。
答案 2 :(得分:1)
最好的方法是使用:
req.connection.remoteAddress
答案 3 :(得分:1)
我在表达中使用的是ip V4:
#include<iostream>
using namespace std;
int main()
{
int a,b;
cin>>a;
cin>>b;
cout<<" "<<endl;
string c;
getline(cin,c);
int i=1;
int s=0;
while(c[i]!='\0')
{
if(c[i]=='1')
{
s+=a;
a=a*a;
i++;
}
else
{
a=a*a;
i++;
}
}
int r=s%b;
cout<<r;
return 0;
}
ipV4包含调用客户端的正确值,如果通过这种方式访问计算机,则为==='localhost'。
您必须了解它的工作方式与在浏览器中运行的js脚本不同,这与客户端通过网络接口连接到服务器有关。
对于您描述的用例,即通过“ localhost”进行访问。
对于其他用例,您可能需要做更多的事情,但是 local 表示它正在使用计算机中的一个接口,因此您可以检查所有接口是否匹配。< / p>