Служба nodejs отправляет обратно JSON.Как заполнить его в ejs / html - PullRequest
0 голосов
/ 26 мая 2018

Мое приложение nodejs использует экспресс-и следующий метод записи.

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 Ответ

0 голосов
/ 26 мая 2018

всякий раз, когда вы используете EJS, имейте в виду следующие две вещи:

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

Решение:

Замените res.send(foundUser) на res.render(page,foundUser), таким образом, вы будете иметь страницу как ejs длябыть отображены и найдены пользователем в качестве параметров для вашего представления.

Также ваша функция неверна, вы должны использовать это:

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>
<% } %>
...