登录
注册
node.js 学习社区
为什么变量传递到EJS,显示总是 [object Object]

我擦嘞鸡

2015-01-23 09:50

我用 Request 抓取一个网页的内容,然后用 cheer.io 解析,完成后希望把结果输出到 EJS 模板的前台:

app.get('/ceshi',function(req,res,next){
res.render('ceshi',{
    title : 'ceshi',
	user : req.session.user,
	success : request('https://xxx.org/',function(error,response,body){
	  if(!error && response.statusCode == 200){
		  var $ = cheerio.load(body);
		      var items = [];
			  $('#topic_list .topic_title').each(function (idx, element) {
				var $element = $(element);
				items.push({
				  title: $element.attr('title'),
				  href: $element.attr('href')
				});
			  });
			console.log(JSON.stringify(items)); 
            req.flash('success',JSON.stringify(items));			
	     }
      }),
	error : req.flash('success').toString()
  });
})

但是前台总是显示 [object Object],我打印这个items是有结果的:


回复 · 1

  • 你用这个 req.flash 我猜从某个古老的教程中看来的吧,这个方法在 Express 3中就已经被废弃了,要传递抓取的结果到前台,用 res.render 合适一些:

    res.render('template', {success: JSON.stringify(items)});

    3

发表回复

你可以在回复中 @ 其他人