Node.js将值传递给局部视图

时间:2018-02-25 16:08:17

标签: node.js express partial-views

我有一条看起来像这样的路线:

app.get('/Search', function (req, res) {
    var searchString = req.query.SearchString;
    var request = require('./cstapi')(searchString, onBody);
    function onBody(body) {
    res.render('index', { output: body });
    }
});

和一个如下所示的index.ejs:

<div id="searchDiv">
    <% include ../partials/search %>
    <br>
    <% include ../partials/results %>
</div>

搜索看起来像这样:

<form action="./search" method="GET">
    <input type="text" name="SearchString" class="form-control" >
    <input type="submit" value="Search" class="form-control">
</form>

结果如下:

<p>Search returned the following: <%= output %></p>

我尝试在用户提交表单后尝试将搜索结果显示在部分视图中。在上面我尝试渲染索引和后续的部分视图时得到output is not defined

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方法,虽然我不是100%确定这是最好的方法:

通过在索引中向输出添加“null check”,可以在没有搜索结果的情况下访问结果部分时避免output not defined错误。

所以索引现在变成:

<div id="searchDiv">
    <% include ../partials/search %>
    <br>
    <%if (typeof output !== 'undefined') { %>
     %> <% include ../partials/results %>
     <% } %>
</div>

希望有人可以提供更好的方法吗?