我已经设置了一个典型的node.js服务器(vanilla,no express等),它的功能很棒。但是对于我的网络应用程序,我希望能够使用不是查询字符串,而是使用简单的路径来表达用户的会话ID。
例如,domain.com/GH34DG2
将与domain.com相同。我决定尝试这个,因为我已经看到其他应用程序使用这种格式,它比查询字符串更短更好看。一旦用户被提供给页面,客户端将解密路径并使用它来连接到特定会话。
如何使用基本的Node.js服务器执行此操作?
当用户在其Web浏览器中键入或粘贴domain.com/GH34DG2
时,我需要服务器来提供索引页面,而不是尝试读取文件domain.com/GH34DG2
,但仍需要读取其他路径,像往常一样的样式表,视频等。
答案 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模块