意外的标记缩进
Unexpected token Indent
我正在我的路由中编写一个 javascript 函数,它使用了一些 html 保存在 tran.jade 文件中,但是当我 运行 它在浏览器。基本上我想在路由器中创建一个函数来计算学生的分数,然后 return 使用 express 的视图。如果我做错了,请指导我。
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;
您需要了解服务端和客户端的区别:
- server – 响应来自客户端的 HTTP 请求的程序,运行在云端;在你的例子中,这是一个建立在 Node.js 之上的 Express 服务器;服务器“提供”HTML 代码给客户端
- client – 向服务器发送 HTTP 请求的程序,通常是像 Google Chrome 这样的网络浏览器;客户端呈现从服务器获得的 HTML 代码
在您的代码示例中,您混淆了服务器和客户端代码并尝试在服务器上 运行 它。 Node.js 执行此行时出现错误“文档未定义”:
document.getElementById('txtStudentName').value =
document.getElementById('txtName').value;
这是因为 document
和 getElementId
访问从客户端在浏览器中呈现的 HTML 创建的文档对象模型 (DOM)。在服务器上,没有 DOM.
我正在我的路由中编写一个 javascript 函数,它使用了一些 html 保存在 tran.jade 文件中,但是当我 运行 它在浏览器。基本上我想在路由器中创建一个函数来计算学生的分数,然后 return 使用 express 的视图。如果我做错了,请指导我。
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;
您需要了解服务端和客户端的区别:
- server – 响应来自客户端的 HTTP 请求的程序,运行在云端;在你的例子中,这是一个建立在 Node.js 之上的 Express 服务器;服务器“提供”HTML 代码给客户端
- client – 向服务器发送 HTTP 请求的程序,通常是像 Google Chrome 这样的网络浏览器;客户端呈现从服务器获得的 HTML 代码
在您的代码示例中,您混淆了服务器和客户端代码并尝试在服务器上 运行 它。 Node.js 执行此行时出现错误“文档未定义”:
document.getElementById('txtStudentName').value =
document.getElementById('txtName').value;
这是因为 document
和 getElementId
访问从客户端在浏览器中呈现的 HTML 创建的文档对象模型 (DOM)。在服务器上,没有 DOM.