在JQuery中:
initSliders(socket, '!{request}');
request
是一个对象(Express.js Web应用程序中的HTTP请求对象),其中包含session
等信息。当我把它传递给initSliders()
时,它作为字符串文字“[object Object]”进入另一边。为什么?我不知道。它在传入之前就像一个对象,因为像这样的命令执行:
console.log('!{request.session.user}');
console.log('!{request.session.date}');
console.log('!{request.session.city}');
显示
之类的内容Alfred
11/13/2013
Manitoba
如何在传递给函数时保持它的结构,以便我可以像上面那样引用它的属性?
request
对象通过渲染,通过像这样的app.js处理程序进入(这就是我使用单引号和大括号的原因,这是我知道如何引用它的唯一方法)
exports.dashboard = function(req, res){
res.render('dashboard', {request: req});
}
答案 0 :(得分:0)
打印出[object Object]
,因为req.toString()
会返回它。 res.render('dashboard', { request: JSON.stringify(req) })
也没有多大意义,因为请求是特别庞大的对象,您可能并不真的希望将所有对象属性传递给渲染脚本。但是,您可以尝试...因此强烈建议仅按以下方式传递所需内容:
red.render('dashboard', { parameters : JSON.stringify({ param1 : req..., param2 : req.... and so on })