2013-11-21 22 views
0

jQuery中:如何通过参数传递此var的值?

initSliders(socket, '!{request}'); 

request是一个对象(在Express.js web应用程序的HTTP请求对象),其具有这样的信息作为我session。当我将它传递给initSliders()时,它作为字符串文字“[object Object]”进入另一端。为什么?我不知道。它的行为像一个对象时,它传递的,因为像这样的命令执行前:像

Alfred 
11/13/2013 
Manitoba 

console.log('!{request.session.user}'); 
console.log('!{request.session.date}'); 
console.log('!{request.session.city}'); 

显示事情,我怎样才能保持它的结构被传递给函数的时候,所以我可以引用它的属性像上面那些?

request对象即将通过渲染,通过这样一个app.js处理程序(这就是为什么我用它周围的单引号和大括号,这是我知道如何引用这唯一的方法)

exports.dashboard = function(req, res){ 
    res.render('dashboard', {request: req}); 
} 
+1

不知道我完全跟随,也许尝试initSliders(插座,JSON.stringify(要求)); –

+0

这不行,我试了一下。函数请求内部看起来像这样:“[object Object]”。它不再是一个带有属性的对象,它只是一个表示“[object Object]”的字符串。 – gjw80

回答

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 })