最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Should I be using script tags in ejs files? - Stack Overflow

programmeradmin0浏览0评论

I'm learning how to develop a node application. It's an app where people can post events happening around the city.

I have an ejs file, new.ejs, that allows users to submit a new event. Obviously there is an event start time and end time. I want to make sure that the end time is AFTER the start time, so I simply added a script to do that, as follows:

          <!-- 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 -->  

Now this works just fine, it does what I want it to do.

However, I know that EJS is designed to take back-end (node) javascript code and render it out into the view.

My question is:

  1. Is adding front-end code between tags a hack? I.e, is this proper coding practice? If not, what is a better way of doing this?

  2. Right now, I just have a small amount of code between my script tags. As I continue to develop the application, what happens if the code gets way too long? Should it remain in the ejs file? Seems too messy...

I'm learning how to develop a node application. It's an app where people can post events happening around the city.

I have an ejs file, new.ejs, that allows users to submit a new event. Obviously there is an event start time and end time. I want to make sure that the end time is AFTER the start time, so I simply added a script to do that, as follows:

          <!-- 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 -->  

Now this works just fine, it does what I want it to do.

However, I know that EJS is designed to take back-end (node) javascript code and render it out into the view.

My question is:

  1. Is adding front-end code between tags a hack? I.e, is this proper coding practice? If not, what is a better way of doing this?

  2. Right now, I just have a small amount of code between my script tags. As I continue to develop the application, what happens if the code gets way too long? Should it remain in the ejs file? Seems too messy...

Share Improve this question asked Dec 16, 2016 at 1:47 AsoolAsool 14.2k8 gold badges37 silver badges53 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 3
  1. If your app is server-side rendered (not a Single Page Application), then your approach is sound.

  2. You can put the your code in JS files in a /public folder and configured your node server to serve those files as static files, and add <script> tags in the .ejs files that reference those JS files.

I have a sample project with such an implementation. This will be your ejs file (jade for my case) and this is where you put your script files. Lastly, configure your app to serve static assets from a directory like this.

发布评论

评论列表(0)

  1. 暂无评论