我的nodejs应用程序是使用express和following post方法。
app.post("/orderdeliver",function(req,res){ var cellNumber=req.body.mobilenumber; User.findOne({mobilenumber:req.body.user.mobilenumber}).populate("clothes").exec(function(err,foundUser){ if(err || foundUser.length<=0){ console.log(err); }else{ //res.render("orderhistory",{user: foundUser}) res.send(foundUser); } });
(});
这里我想以JSON格式返回结果。它由res.send()执行到从中调用的EJS页。现在,我想用JSON中找到的结果填充同一个页面。我必须只返回JSON格式。如何修改EJS页面,以便在其中填充返回的JSON,而旧的HTML元素将保持不变。我知道可以使用res.render(),但这将破坏发送回JSON的目的。
- <%= someVariable %> - <% someCode %>
解决方案:
更换 res.send(foundUser) 通过 res.render(page,foundUser) ,这样您就可以将page作为要呈现的EJS,并将founduser作为视图的参数。
res.send(foundUser)
res.render(page,foundUser)
此外,您的功能错误,您应该使用此功能:
if(error) { return res.render(errorPage,{ error: error.message || error, data: false }) } else { return res.render(page,{ error: false, data: foundUser }) }
在EJS文件上使用值的示例:
<% if(foundUser.name) { %> <h1><%= foundUser.name %></h1> <% } %>