使用 Node.js,如何将随机字符串路径重定向到主页
With Node.js, how can I redirect random string paths to the home page?
我已经设置了一个典型的节点.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 的模块
相关文章:
- 未捕获的InvalidValueError:setIcon:不是字符串;并且没有url属性;并且没有路径属性
- 如何将字符串附加到对象中'路径'在Javascript中
- 从javascript中的字符串路径获取文件名
- 从包含密钥路径的字符串中获取json值
- 绘制动画openlayers线条字符串路径
- 区分路径字符串和标记字符串
- 从路径字符串 - Javascript 获取所有父路径
- 通过document.location以javascript中的字符串形式传递文件路径
- 框架中的实用程序,用于更轻松地定义 SVG 路径字符串
- 创建独立于平台的路径字符串
- 如何有效地检查路径字符串是否是 jQuery 中另一个路径字符串的子项
- 根据路径字符串构建嵌套文件夹结构
- Regex for Windows路径字符串
- Node.js添加相对路径字符串到数组复制斜杠
- 在myObj.one.two.three.field中,当字段有2个或更多嵌套级别时,通过路径字符串获取对象字段
- Javascript正则表达式解析路径字符串
- 基于文件路径字符串创建对象
- 获取URL路径字符串中的最后一个值
- javascript正则表达式替换路径字符串中的3digitis
- 格式化路径字符串在javascript