2013-10-16 71 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