【问题标题】:Call a node function on each page在每个页面上调用一个节点函数
【发布时间】:2021-01-11 00:40:20
【问题描述】:

我有一个从数据库中获取值的函数。 我想为每个页面调用该函数并检索其值。 这是一个像这样的节点函数:

async function getBitcoinPrice() {

    let btcprice = await cryptoPrice.findOne({"pair": 'BTC'});
    if(!btcprice){
        let price = await btcValue({currencyCode: 'EUR'});
        btcprice = await cryptoPrice.findOneAndUpdate({"pair": 'BTC'},{"pair":'BTC','price' : price},{upsert:true,new:true});
        return btcprice.price;
    }


    return btcprice;

}

我想在标题 div 上加载值。 我正在使用 Pug 模板

【问题讨论】:

  • 您是否尝试过以任何方式将值传递给 pug?
  • 我想在每个页面中使用,我不想为每个路由传递

标签: javascript node.js pug


【解决方案1】:

如果您使用 jQuery,您可能需要使用 $(document).ready。或者您可以简单地在布局页面的script 标签中调用此方法。你也可以试试window.attachEvent("onload", fn);

【讨论】:

  • 我需要调用一个节点函数
  • Node 不是编程语言。它是框架。你写的方法我相信它是用javascript编写的,可以通过浏览器或NodeJS运行。如果您想通过 NodeJS 运行此方法,则需要通过服务器托管它。您可以使用 http 模块使用 vanilla NodeJS 托管,也可以使用 express 或 restify 之类的框架来执行此操作。然后您可以对可能在内部调用此方法的 Nodejs 服务器进行 ajax 调用。参考:developer.mozilla.org/en-US/docs/Learn/Server-side/…
  • 然后创建路由并通过 Ajax 调用该内部路由,对吗?
  • 是的,正是@JEFF
【解决方案2】:

使用link 中给出的解决方案。你可以在每个页面中添加信息,然后由于它是在脚本中添加的,因此页面中的所有js函数都可以访问它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 2013-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多