javascript - 使用 EJS 将 JS 转移到另一个 View

标签 javascript html node.js object ejs

我很感激这里有一手牌,可能是一手简单的手牌,但已经晚了,我已经打败了。我想我需要第二双眼睛来关注这个问题。

用户名是我试图传递的变量,我是新人,所以不确定礼仪,我认为在我的帖子中最好少写代码,所以我只是把我的 .post 放在我的 .post 中,然后链接我的 git 中心,以防有人想看其余相关代码。

<header>
  <nav class="navbar navbar-expand-md navbar-dark bg-success">
    <a class="navbar-brand" href="/urls">TinyApp</a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarNavAltMarkup">
      <div class="navbar-nav">
        <a class="nav-item nav-link" href="/urls">My URLs</a>
        <a class="nav-item nav-link" href="/urls/new">Create New URL</a>
      </div>
    </div>
   <p>
    ***<% username %>*** 
   </p>
  </nav>
</header>

我注释掉了一个 if 语句,似乎不起作用,也没有完全导致代码中断。

//redirect to index page after 'login'
app.post('/index', (req, res) => {
  // if (req.cookies["username"]) {
  //   let templateVars = { urls: urlDatabase, username: req.body.username };
  // } else {
  //   let templateVars = { urls: urlDatabase };
  // }
  res.cookie('username', req.body.username);
  let templateVars = { username: req.body.username }; 

  console.log(templateVars.username);
  res.redirect('urls', 200,  templateVars);
});

最佳答案

您没有正确使用res.redirect()。函数签名是这样的:

res.redirect([status,] path)

它只需要两个参数,一个可选的状态代码和一个将浏览器重定向到的 URL 或路径。您没有正确传递任何这些参数。

正常使用 res.redirect() 如下所示:

res.redirect("/home");

如果您省略状态,它将默认为 302。

<小时/>

也许你打算这样做:

res.render('urls', templateVars);

它将使用 templateVars 对象作为模板的属性来渲染名为 urls 的模板,并且该模板将作为新的 HTML 文档返回,以在表单 POST 之后显示引起了这个请求?

<小时/>

如果您尝试做的是重定向到另一个网址,然后让它以某种方式使用 templateVars 在重定向后进行渲染,则不能这样做。

关于javascript - 使用 EJS 将 JS 转移到另一个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59298826/

相关文章:

javascript - 使用 JavaScript 在 IE 中未正确设置禁用属性

javascript - 为 span 标签内的 href 指定行数

javascript - 无法从 Json 文件加载数据

html - html 和 body 元素的高度和宽度

javascript - 进程 Node 不断增长直到耗尽所有内存

node.js - Node 加密 HMAC 返回 <SlowBuffer> 而不是 String

android - UnitySocketIO向nodejs发送websocket消息

javascript - 使用 bool 构造函数和内部 if 的类型强制有什么区别

javascript - 如何删除获取 id 的一部分

javascript | Android 的点击 + 鼠标移动