使用Node.js,如何将随机字符串路径重定向到主页?

时间:2016-03-03 01:19:54

标签: javascript node.js

我已经设置了一个典型的node.js服务器(vanilla,no express等),它的功能很棒。但是对于我的网络应用程序,我希望能够使用不是查询字符串,而是使用简单的路径来表达用户的会话ID。

例如,domain.com/GH34DG2将与domain.com相同。我决定尝试这个,因为我已经看到其他应用程序使用这种格式,它比查询字符串更短更好看。一旦用户被提供给页面,客户端将解密路径并使用它来连接到特定会话。

如何使用基本的Node.js服务器执行此操作?

当用户在其Web浏览器中键入或粘贴domain.com/GH34DG2时,我需要服务器来提供索引页面,而不是尝试读取文件domain.com/GH34DG2,但仍需要读取其他路径,像往常一样的样式表,视频等。

3 个答案:

答案 0 :(得分:1)

我意识到答案实际上是非常简单的。我需要做的就是检查路径是否缺少扩展程序,然后提供/index.html(或home.html或您使用的任何一个),这里是我的" Check Home Request" :

function checkHomeReq(path, ext) {
    if (path === "/" || ext == '' )
        path = "/index.html";
    return path;
}

答案 1 :(得分:0)

只需解析请求网址。

这是我在谷歌上发现的一个简单的服务器示例,我在handleRequest添加了一些内容:

var http = require('http');

const PORT=8080; 

function handleRequest(request, response){

    // parse request.url to pull out the session_id
    var session_id = request.url.split('/')[1];

    // do something with session_id
    // serve page/data/whatever

    response.end('It Works!! Path Hit: ' + request.url);
}

var server = http.createServer(handleRequest);
server.listen(PORT, function(){
    console.log("Server listening on: http://localhost:%s", PORT);
});

答案 2 :(得分:-2)

也许你可以使用一种名为md5的东西?

在php中我们有

md5(uniqid(rand()));

在node.js中,他们有一个MD5模块