【问题标题】:send parameter from routes to htmlfile从路由发送参数到 htmlfile
【发布时间】:2017-11-20 22:48:27
【问题描述】:

我在 nodejs 中有一个应用程序。现在我正在发送一个参数以及我想在 html 的脚本部分中使用的 url。以下是我在路线中的代码:

app.use('/overview',function(req, res) {
module.exports.dbname = req.query.dbname; 
res.sendFile(path.join(__dirname, '../public/html', 'overview.html'));
});

以下是我的 overview.html 文件中的代码:

<script>
  function cb(start, end) {
   $('#reportrange span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
   filter = {
       "start" : start.format('YYYY-MM-DD'),
       "end" : end.format('YYYY-MM-DD '),
       "gender" : gender,
       "dbname" : //dbname from url will come here
      });
  };
</script>

现在我想使用我的 overview.html 部分中的 dbname 将其作为后端调用的参数发送。我可以将它直接加载到我的 js 文件中,但这不符合我的目的。怎么可能。

【问题讨论】:

  • 为什么不使用视图引擎?然后您可以轻松地将 dbname 发送到呈现的视图中。

标签: javascript jquery html node.js


【解决方案1】:

我认为最好的方法是查看模板引擎,例如 handlebarspug

【讨论】:

  • 我为此使用了哈巴狗。我可以发送参数。你能帮我解决我希望将参数作为字符串接收的事情,而我只是将它作为值。我发送它的方式是: pug.renderFile('filename',{dbname : 'value'})
  • 我希望将参数作为字符串接收,而我只是将其作为值获取,这是什么意思?值是什么样的?
  • 这是我在渲染文件后获得参数的方式:“dbname”:value;但我希望它像:“dbname”:“value”
  • 哦,我明白了,pug 不会在模板中的字符串周围包含引号。如果您需要它们,则需要手动添加它们,例如“#{dbname}”
【解决方案2】:

您正在使用 res.sendFile,因此您无法使用它传递任何数据,因为它只是从磁盘读取文件并将其作为响应流式传输,您没有机会修改它

您需要模板系统来完成您的任务(EJS、Handlebars、Mustache)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-14
    • 2018-11-24
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多