使用 ejs 时如何使用 url 查询字符串

Posted

技术标签:

【中文标题】使用 ejs 时如何使用 url 查询字符串【英文标题】:How can I use url query string when working with ejs 【发布时间】:2018-05-25 01:38:57 【问题描述】:

有没有办法在 ejs 中的 href 中传递查询字符串?我希望能够单击一个链接并在我的数据库查询中使用链接参数。这是我目前正在使用的代码

//ejs view
<% if (data)  %>
<% data.forEach(function(car)  %>
    <div class="card mb-3">
        <a href="/cars/:id">
            <div class="card-body text-center text-capitalize">
                <div class="card-title"><%= car.brand %></div>
                <p class="card-text text-muted"><%= car.color %> / <%= car.engine_type %></p>
            </div>
        </a>
    </div>
<% ) %>
<%  %>

在我的路由文件中,我想这样查询

router.get('/cars/:id?', function(req, res) 
var carId = req.params.id;

res.locals.connection.query('SELECT * FROM cars WHERE id = ?', [carId], function(err, row) 
    if(err) 
        console.log(err);
     else 
        res.send(row);
    
);
);

现在我在运行我的应用程序时得到 304 状态,因为我没有传回 id。我怎样才能把它传回去?我不知道,也没有成功搜索。

【问题讨论】:

【参考方案1】:

最终发现可以在href中传递id,与ejs显示car对象的方式一样。在这种情况下,href="/cars/&lt;%= car.id %&gt;"

【讨论】:

以上是关于使用 ejs 时如何使用 url 查询字符串的主要内容,如果未能解决你的问题,请参考以下文章

在express3里用ejs模版引擎时,如何使其支持'.html'后缀

如何在 HTML 属性中使用 EJS?

如何使用 mongodb、node.js、express 和 EJS 创建动态站点地图?

如何使dango url忽略urls.py中的查询字符串

Laravel 路由:使用 URL 查询字符串时如何路由?

当标签的url部分时如何提取Oracle XML