Node.js Express - 如何动态提供模型数据?

时间:2018-02-28 22:36:50

标签: jquery node.js ajax express

假设我有一个带有标题和正文的articleModel。我有一个获取路径来呈现所有设置的列表:

app.get("/articles", function(req, res) {
  articleMode.find()
    .then(function(articles) {
      res.render("articles.ejs", {articles: articles});
    });
});

该视图包含嵌入式JS代码,用于显示锚标记内的文章列表。每篇文章都有一个单独的div标签。

我希望根据点击了锚标记的文章,将文章标题和正文呈现到该div中。但是,我不想将用户重定向到另一个页面(即路由到" / articles /:id");我想在同一页面上动态地提供此服务(即保留在" / articles")。

我记得多年前使用jQuery和Ajax,但是我很久没有完成它了,我的搜索没有达到我需要的水平。我正在寻找如何完成这一过程的大致概述。

1 个答案:

答案 0 :(得分:0)

这将要求您在点击时添加一个事件处理程序,该处理程序从单击的元素中获取href属性。然后你可以向该URL发出ajax请求并将其附加到dom。这是一个基本概要:

// The click handler
$('a.article-link').click(function (e) {

  // Prevent navigation
  e.preventDefault();

  // Grab the href
  let $this = $(this);
  let href = $this.attr('href');

  // Make the request
  $.get(href)
  .done(function (response) {

    // Append the response to the parent of the a tag
    $this.closest('.article-content').append(response);
  });
});