代码之家  ›  专栏  ›  技术社区  ›  Braj

nodejs服务发送回json。如何在EJS/HTML中填充它

  •  0
  • Braj  · 技术社区  · 8 年前

    我的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的目的。

    1 回复  |  直到 8 年前
        1
  •  0
  •   jesusgn90    8 年前

    - <%= someVariable %>
    - <% someCode %>
    

    解决方案:

    更换 res.send(foundUser) 通过 res.render(page,foundUser) ,这样您就可以将page作为要呈现的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>
    <% } %>
    
    推荐文章