javascript - 快速重定向并传递 JavaScript 变量

标签 javascript html express redirect web

我有一个网站,我希望允许用户提交一条信息(为简单起见,我们假设他们的名字)。他们提交自己的姓名,该姓名会通过 post 请求发送到服务器,并为他们返回一个唯一的 url。

目标:当用户访问 mysite.com/their-unique-url 时,会将他们带到 mysite.com/index.html,并进行修改,以便他们的姓名(存储在数据库中)及其独特的网址)显示在页面上。

如何将用户快速重定向到index.html,并在执行此操作时传递一个JavaScript 变量供index.html 使用?

app.get("/:unique", function(req, res){
names.findOne({ 'id' : req.params.unique }, 'name', function (err, name) {
  if (err) return console.error(err);
  res.redirect('/'); //but I also want to pass 'name' to index.html
});

最佳答案

我找到的解决方案是使用 queryString 和正则表达式。

服务器端,添加查询字符串进行重定向:

res.redirect('/?name=' + name);

客户端,使用正则表达式从查询字符串访问变量:

function getUrlParameter(name) {
    name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
    var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
    var results = regex.exec(location.search);
    return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
};
console.log("name: " + getUrlParameter('name'));

但是,由于 querystring 的限制,我仍在寻找一种不使用 queryString 也不使用模板引擎的解决方案。

关于javascript - 快速重定向并传递 JavaScript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45104482/

相关文章:

javascript - Polymer 2.5.0 - dom-repeat 未更新

javascript - Jquery 悬停在 html 中不起作用

php - 允许特定文件类型?上传

node.js - 无法使用 systemctl 永远启动进程

javascript - S3 : No Access-Control-Allow-Origin header is present on the requested resource

javascript - 动态 Array.map 回调函数的 Typescript 类型

json - 如何更新 Nodejs/MongoDB 对象数组中的字段

javascript - 由于没有从 express-serve-static-core 导出 ParsedQs,构建失败

javascript - 如何在 webview 中加载完整的谷歌图书网址?

html - css ribbons 不在 IE 中正确显示