不同的查询取决于可选的路由 - expressjs

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不同的查询取决于可选的路由 - expressjs相关的知识,希望对你有一定的参考价值。

是否可以根据可选路由创建不同的查询?

app.get('/:genre/:book?', function (req, res) {

 var genre = req.params.genre;
 var book = req.params.book;

 var sql = 'SELECT * FROM books WHERE genre = ? AND book = ?';

 con.query(sql, [genre, book], (err, rows) => {
  if (err) throw err
  res.send(rows);
 });

});
答案

这样的事可能吗?

app.get('/:genre/:book?', function (req, res) {

    var genre = req.params.genre;
    var book = req.params.book;

    var sql = 'SELECT * FROM books WHERE genre = ?';
    var params = [genre];

    if(book) {
        sql += ' AND book = ?';
        params = [genre, book];
    }

    con.query(sql, params, (err, rows) => {
        if (err) throw err
        res.send(rows);
    });

});

以上是关于不同的查询取决于可选的路由 - expressjs的主要内容,如果未能解决你的问题,请参考以下文章

使用可选的自定义功能 onclick 扩展单个 toastr 创建

可选的反应路由器参数标记 GET 请求错误?

可选的反应路由器参数

Gorilla mux 可选查询值

angularjs 路由可以有可选的参数值吗?

typescript 可选的路由参数