我应该在ejs文件中使用脚本标签吗?

时间:2016-12-16 01:47:30

标签: javascript node.js ejs

我正在学习如何开发节点应用程序。这是一个应用程序,人们可以发布在城市周围发生的事件。

我有一个ejs文件new.ejs,允许用户提交新事件。显然有一个事件开始时间和结束时间。我想确保结束时间是在开始时间之后,所以我只是添加了一个脚本来执行此操作,如下所示:

          <!-- EVENT DATE AND TIME -->
          <div class=row>
              <!-- DATE -->
              <div class="form-group col-md-4">
                  <label for="date">Date *</label>
                  <input name="date" type="date" class="form-control" id="date"> 
              </div>
              <!--START TIME -->
              <div class="form-group col-md-4 ">
                  <label for="starttime">Start Time *</label>
                  <input name="starttime" type="text" class="form-control" id="starttime">
              </div>
              <!--END TIME -->
              <div class="form-group col-md-4 ">
                  <label for="endtime">End Time *</label>
                  <input name="endtime" type="text" class="form-control" id="endtime">
              </div>
              <script type="text/javascript">
                    $('#starttime').timepicker();
                    $('#endtime').timepicker({
                        'minTime': '12:00am',
                        'showDuration': true
                    });
                    $('#starttime').on('changeTime', function() {
                        $('#endtime').timepicker('option', 'minTime', $(this).val());
                    });
              </script>
          </div> <!-- END OF ROW -->  

现在这很好用,它可以做我想做的事。

但是,我知道EJS旨在获取后端(节点)javascript代码并将其渲染到视图中。

我的问题是:

  1. 在标签之间添加前端代码是黑客吗?即,这是正确的编码实践吗?如果没有,有什么更好的方法呢?

  2. 现在,我的脚本标签之间只有少量代码。当我继续开发应用程序时,如果代码变得太长,会发生什么?它应该保留在ejs文件中吗?看起来太乱了......

1 个答案:

答案 0 :(得分:1)

  1. 如果您的应用是服务器端呈现的(不是单页应用程序),那么您的方法是合理的。

  2. 您可以将您的代码放在/public文件夹中的JS文件中,并将您的节点服务器配置为将这些文件作为静态文件提供,并在<script>中添加.ejs标记引用这些JS文件的文件。

  3. 我有一个带有这种实现的示例项目。 This将是您的ejs文件(我的案例为jade),this是您放置脚本文件的地方。最后,将您的应用配置为从this等目录提供静态资源。