在服务器上使用 ExpressJS,在客户端静态链接上使用 JQuery

Using ExpressJS on Server and JQuery on Client static links

本文关键字:链接 JQuery 静态 ExpressJS 服务器 客户端      更新时间:2023-09-26

刚开始学习jQuery和node.js,效果非常好。但是在这一点上,我发现了一个无法通过一次又一次的谷歌来解决的问题。这可能很简单,但找不到...

所以这里是:

我正在用ExpressJS/Node.JS编写我的服务器,为服务器提供这样的网页:

router.get("/", function(req, res) {
 res.sendFile(path + "index.html");
});

在客户端,我像这样使用 jQuery 请求页面

<li><a id="show-catchem" href="#page-content">CatchEm</a></li>

$("#show-catchem").click(
  function() {
    $("#content-page").load("html/catchem.html #page-content");
  }
);

这很好用,但是当单击其他地方的链接(例如Facebook上的链接)时,我也想做jQuery的事情:

www.homepage.com/catchem

我可以用 ExpressJS 回答这个问题,但不知道如何在客户端将其插入主页。

希望我说清楚,欢呼:)

您可以向服务器发出请求,然后在服务器中检索HTML内容并通过某些视图引擎(如jade)将其传递给客户端。在 Jade 中,为了注入变量中的 html 内容,您必须使用 != 运算符,该运算符不会对内容进行转义。由于在下面我向您展示的示例中,HTML内容是整个页面,因此我将它注入到页面的根目录,如果要将内容放在其他地方,则需要将HTML内容与标签相关联(例如:将内容附加到div标签,div!= content

例:

服务器

// send the HTML content to the client view through responseHTML variable
router.get('/catchem', function(req, res){
    request.get('http://www.google.com', function(err, response, body){
        res.render('catchem', {responseHtml: body});
    });
});

客户端(catchem.jade page)

!= responseHtml