我的nodejs应用程序正在使用express和post 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的目的。
答案 0 :(得分:0)
每当使用EJS时请记住以下两点:
- <%= someVariable %>
- <% someCode %>
解决方案:
将res.send(foundUser)
替换为res.render(page,foundUser)
,这样您就可以将页面作为要渲染的ejs和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>
<% } %>