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

Node.js pass a value to a partial view

我的路线如下所示:

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

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

通过将 'null check' 添加到索引中的输出,我可以避免在访问没有搜索结果的部分结果时出现 output not defined 错误。

所以索引现在变成:

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

希望有人能提供更好的方法?