res.render中的req.param导致奇怪的控制台日志

我正在使用与Node.js和Express使用EJS模板。 我正在尝试将请求parameter passing给我的EJS模板。 这是工作,但是,由于某种原因,我的控制台日志报道一些奇怪的事情。

版本:

  • 节点0.10.26
  • Express 4.6.1
  • EJS 0.8.5

这里是处理ejs模板的路线:

var express = require('express'); var router = express.Router(); var data = require('../data.json'); var pkg = require('../../package.json'); router.get('/', function(req, res) { res.render('index', { 'acs' : data.acs, 'products' : data.products, 'pkg' : pkg, 'debug' : req.param('debug') }); }); module.exports = router; 

这是控制台日志 (为了节省空间,我用“…”replace了任何东西)

 var __stack = { lineno: 1, input: "<!DOCTYPE html>\n<html lang=\"en\"> ... </html>\n", filename: "/web/app/views/index.ejs" }; function rethrow(err, str, filename, lineno){ var lines = str.split('\n') , start = Math.max(lineno - 3, 0) , end = Math.min(lines.length, lineno + 3); // Error context var context = lines.slice(start, end).map(function(line, i){ var curr = i + start + 1; return (curr == lineno ? ' >> ' : ' ') + curr + '| ' + line; }).join('\n'); // Alter exception message err.path = filename; err.message = (filename || 'ejs') + ':' + lineno + '\n' + context + '\n\n' + err.message; throw err; } try { var buf = []; with (locals || {}) { (function(){ buf.push('<!DOCTYPE html>\n<html lang="en">...</html>\n'); })(); } return buf.join(''); } catch (err) { rethrow(err, __stack.input, __stack.filename, __stack.lineno); } 

就像我说的,它正在工作,但是我不知道为什么这是logging在控制台。 谢谢您的帮助!

问题是传递给res.render()的第二个参数被传递给渲染引擎你的模板。 由于这种行为,ejs(至less在本文写作时通过1.0)在该对象中查找debug属性,以确定是否打印debugging信息 。