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

标签 javascript node.js ejs

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

我有一个 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 旨在获取后端( Node )javascript 代码并将其呈现到 View 中。

我的问题是:

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

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

最佳答案

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

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

我有一个这样实现的示例项目。 This将是您的 ejs 文件(我的情况是 jade)和 this是放置脚本文件的地方。最后,将您的应用配置为从 this 等目录中提供静态 Assets .

关于javascript - 我应该在 ejs 文件中使用脚本标签吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41176097/

相关文章:

javascript - JQuery 过滤函数忽略 html 元素并只搜索文本

javascript - 如何为数组中的每个元素绕过 SecurityTrustResourceUrl?

MongoDB 和 Mongoose : How to find and remove a large group of documents. findAndModify(..... {删除 :true})?

node.js - Firebase 函数 : How to maintain 'app-global' API client?

node.js - 在本地测试 Instagram Basic API

javascript - 使用 jQuery 或纯 JavaScript 的 html 子字符串

javascript - 正则表达式检查 & ( ) 和重复字母

javascript - NodeJS 更新 API - 内部服务器错误

javascript - EJS Javascript 中分解语句的规则是什么?

带有预编译脚本的 Javascript 模板引擎?