2013-10-16 50 views
0

我从URL获取我的搜索结果为JSON格式:“/ accounts /:id/users”,我需要检索该JSON数据以呈现“/ contacts/find”。 (后一页显示搜索结果。)发布JSON数据以呈现页面

这是我的应用路由器。有了这个,我可以看到/接触到搜索结果/发现JSON格式:

app.post('/contacts/find', function(req, res) { 
    var searchStr = req.param('searchStr', null); 
    if (null == searchStr) { 
    res.send(400); 
    return; 
    } 

    models.Account.findByString(searchStr, function onSearchDone(err,accounts) { 
    if (err || accounts.length == 0) { 
     res.send(404); 
    } else { 
     res.send(accounts); 
    } 
    }); 
}); 

如何使用“账户”(JSON格式),并与帐户信息重新呈现页面?我正在尝试使用下面的代码片段,但它不起作用。

app.get('/contacts/find', function(req, res) { 
res.render('searchResult.ejs', { 
    accounts: req.accounts, 
    email: req.accounts.email 
}) 
} 

app.get方法不起作用。该网址只显示JSON数据。

回答

1

那么accounts是一个JSON字符串?在这种情况下,你可以分析它(将其转换回一个对象),并将结果传递到您的模板:

var accounts = JSON.parse(req.accounts); 
res.render('searchResult.ejs', { 
    accounts : accounts, 
    email : accounts.email 
}) 
+0

是否确定,如果我呈现“app.post”方法中的页面,而无需使用“ app.get“方法? – eknbrk

+0

@eknbrk当然,我不明白为什么不。只需将您的POST路由中的res.send替换为res.render – robertklep

+0

,再次感谢@robertklep ..它可以工作,但它会将<%email%>渲染为“未定义”..您有什么想法吗? – eknbrk