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

With Node.js, how can I redirect random string paths to the home page?

本文关键字:路径 字符串 重定向 主页 随机 js Node 使用      更新时间:2023-09-26

我已经设置了一个典型的节点.js服务器(原版,没有快递等),它的效果很好。但对于我的 Web 应用,我希望能够使用简单的路径来表达用户的会话 ID,而不是查询字符串。

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

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

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

我意识到答案实际上非常简单。如果检查路径是否缺少扩展名,然后/index.html(或 home.html 或您使用的任何一项提供服务,我需要做的就是这是我的"检查主页请求":

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

只需解析请求 url。

这是我刚刚在谷歌上找到的一个简单的服务器示例,我添加了一些东西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);
});

也许你可以使用叫做md5的东西?

在 PHP 中,我们有

md5(uniqid(rand()));

在节点中.js他们有一个用于 MD5 的模块