Неожиданный отступ токена - PullRequest
0 голосов
/ 01 октября 2019

Я пишу функцию javascript в моем маршруте, которая использует html, который хранится в файле tran.jade, но выдает ошибку отступа при запуске в браузере. По сути, я хочу создать функцию в маршрутизаторе, которая будет производить вычисления по оценкам учащихся, а затем возвращать представление с помощью экспресс. Пожалуйста, ведите меня, если я делаю это неправильно.

      var express = require('express');
      var router = express.Router();

       /* GET home page. */
       router.get('/', function(req, res, next) {
       res.render('index', { title: 'Express' });
       });
       router.get('/tran', function(req, res, next) {
       var grade = "";  //declare a variable for grade
        var  result="";  //declare a variable for result

        //read the marks
        var engMarks = document.getElementById('txtEnglish').value;
        var kannadaMarks = 
        document.getElementById('txtKannada').value;
        var mathsMarks = document.getElementById('txtMaths').value;
        var scienceMarks = 
        document.getElementById('txtScience').value;

        //calculate the total marks (using double notation technique)
         var totalMarks = engMarks - (- kannadaMarks) - (- mathsMarks) 
        - (- scienceMarks);

        //get the average marks
        var averageMarks = totalMarks / 4;                  

        //find the grade and result using the ternary operator inside 
        the switch statement                  
        switch(


                //usage of ternary operator inside switch

                (averageMarks > 60 && averageMarks <= 100) ? 1 : 
                (averageMarks > 50 && averageMarks < 60) ? 2 : 
                (averageMarks > 40 && averageMarks < 50) ? 3 : 0 
              )

                {
                    case 1 :grade = "A";result="First Class";break;
                    case 2 :grade = "B"; result="Second Class";break;
                    case 3 :grade = "C"; result="Third Class";break;
                    case 0 :grade = "D"; result="Fail";break;
                }


        //display the results   
        document.getElementById('txtStudentName').value = 
        document.getElementById('txtName').value;
        document.getElementById('txtStudentClass').value = 
        document.getElementById('txtClass').value;
        document.getElementById('txtTotalMarks').value = totalMarks;
        document.getElementById('txtAvgMarks').value = averageMarks;
        document.getElementById('txtGrade').value = grade;
        document.getElementById('txtResult').value = result;
        res.render('tran');

        }
        );


        module.exports = router;

1 Ответ

0 голосов
/ 01 октября 2019

Необходимо понимать разницу между сервером и клиентом:

  • server - программа, которая отвечает на HTTP-запросы от клиента, работающие в облаке;в вашем случае это Express сервер, построенный поверх Node.js;сервер «передает» HTML-код клиенту
  • client - программе, которая отправляет HTTP-запрос на сервер, обычно веб-браузер, такой как Google Chrome;клиент отображает HTML-код, полученный с сервера

В вашем примере кода вы смешиваете код сервера и клиента и пытаетесь запустить его на сервере. Вы получаете сообщение об ошибке «документ не определен», когда Node.js выполняет эту строку:

document.getElementById('txtStudentName').value = 
    document.getElementById('txtName').value;

Это потому, что document и getElementId обращаются к объектной модели документа (DOM), созданной изHTML-код, который клиент отображает в браузере. На сервере нет DOM.

...