将数据从服务器脚本传递到外部客户端脚本函数的争论中

问题描述 投票:0回答:1

我在server.js中有此代码-

app.get("/search", function(req, res) {
  let q = "select * from events";
  db.task("get-everything", task => {
    return task.batch([task.any(q)]);
  })
    .then(function(events) {
      console.log(events[0]);
      res.render("search", {
        event: events[0],
        error: ""
      });
    })
    .catch(function(err) {
      // display error message in case an error
      res.render("search", {
        error: "Events are missing"
      });
    });
});

[还有另一个脚本search.js,其中有一个函数constructSearch(events),其中event是一个表,该函数显示网页中表中的每个项目。

我想做的是将events[0].catch中的server.js解析为构造搜索,以便它通过我的哈巴狗模板修改html页面。

我不知道如何通过pug调用此函数或如何将此服务器变量作为constructSearch(events)中的参数来调用。

javascript node.js pug client-side
1个回答
0
投票

您需要使用unescaped string interpolation和字符串化将您的pug变量转换为客户端浏览器变量:

var arrayOnClient = !{JSON.stringify(arrayOnServer)};

如果express / pug中的变量为['a', 'b', 'c'],则将输出:

var arrayOnClient = ['a', 'b', 'c'];

没有字符串化,您将得到类似这样的内容,因为它不是有效的JavaScript,只会在浏览器中引发错误:

var arrayOnClient = [Object object];
© www.soinside.com 2019 - 2024. All rights reserved.