2014-10-18 74 views
0

我有一个项目,用户连接到我的路由器,然后在地址栏中输入地址http://192.168.1.50:9091以连接到页面。我希望有一种方法可以输入比这个长IP地址更容易的东西。在node.js中重定向本地主机url,并表达

这里发生的事情至今:

var express = require('express'); 
var app = express() 
    , http = require('http') 
    , server = http.createServer(app) 
    , io = require('socket.io').listen(server) 
    , fs = require('fs') 

server.listen(9093); 

var nRequest = 0; 
var nConnexs = 0; 


app.get('/', function (req, res) { 
    res.sendfile(__dirname + '/client_app.html'); 
}); 

app.get('/2', function (req, res) { res.sendfile(__dirname + 
'/client_app2.html'); }); 

回答

1

我不知道你的意思是:

我有用户连接到我的路由器项目

的Node.js应用程序正在您的机器上。直到有人访问您的机器(通过IP),应用程序永远不会被访问。

因此,您必须在用户和将用户引导到IP的应用程序之间放置一些东西。对于真实的网站,这是使用DNS完成的。您注册一个域名并告诉DNS服务要重定向到的机器的IP。

如果您可以控制路由器(内部网络等),则可以将别名映射到您的IP地址。这完全取决于您的路由器是运行DNS服务器还是支持DNSMasq。您将需要检查您的路由器制造商/型号/等。

最后,如果有少量用户访问您的网站,您可以始终让他们使用hosts文件将名称映射到IP。该文件的位置取决于操作系统;只是谷歌:edit hosts file

1

我假设用户最初连接到您的路由器的公共IP地址或DNS的表示形式。如果是这种情况,通常可以将路由器配置为进行端口转发,以便特定端口上的传入请求自动路由到您网络上的特定私有IP地址。在这种情况下,用户将连接到您的路由器,但该请求会自动转发到您的内部节点服务器,因此用户最终会直接连接到您的节点服务器。

这种类型的配置带有通常的安全警告。这意味着您的节点服务器必须正确配置以防止Internet攻击,并且您的节点应用程序必须采用适当的安全预防措施编写 - 尤其是因为节点服务器运行的计算机的任何损害都可以访问您的内部网络。

如果您向我们展示用户在连接到路由器时最初连接的内容,我们可以提供一个更明确的示例,说明如何配置路由器以利用端口转发。