如何将ejs对象导出到公共目录

时间:2019-02-24 04:14:24

标签: javascript node.js ejs

我正在创建一个节点快递应用,并将ejs作为模板系统。

现在在我的new.ejs文件中,我想用javascript清除它,因此它将是纯html。

我的new.ejs中有一个这样的脚本。

    <script> 
          let amount;

          function calculate(){
                  let numOfPersons = Number($('#numOfPersons').val());
                  let tourPrice = Number("<%= tour.price %>"); //ejs object here

                  let totalPrice = numOfPersons * tourPrice
                  $("#total").val(totalPrice);
                  amount = totalPrice
          }   
</script>

现在,我尝试将其传输到我的public/javascript/calculate.js文件中,但是说tour is not defined是因为<%= tour %>并未导入calculate.js文件中。

为清理代码,我在new.ejs

中尝试了此操作
 <script src="javascripts/calculate.js">
  export default "<%=  tour %>" //this is the name of my object
</script>

calculate.ejs

import {tour} from "../../views/booking/new.js";

let amount;


          function calculate(){
                  let numOfPersons = Number($('#numOfPersons').val());
                  let tourPrice = Number("<%= tour.price %>");

                  let totalPrice = numOfPersons * tourPrice
                  $("#total").val(totalPrice);
                  amount = totalPrice
          }   

但是它不起作用。我尝试咨询MDN进行导入和导出,但我认为我的语法正确但无法正常工作。

我做错了什么?请帮忙。

谢谢

1 个答案:

答案 0 :(得分:1)

当默认导出时,不需要在变量周围使用{}。尝试删除

在您的代码中  import {tour} from "../../views/booking/new.js" 但是我认为没有名为new.js的文件,应该是new.ejs,如果无法正常使用,请告诉我。此外,如果您想在大多数时间将任何变量从ejs页面传递到服务器,我们将在主体参数中绑定值,并在指向/必需的位置使用该值。