无法在Mysql&Express Node JS中转义限制值

androiddev2:

我正在使用Node.js(+ Express JS)和MySQL开发API。我无法转义或将自定义限制值添加到查询中。这是我的路线;

app.post('/api/v1/fetch/limitedArticles/:limit', (req, res,) => {

const limitValue = req.params.limit;

let query = "SELECT article_id, article_name, article_image, article_url FROM ?? ORDER BY article_id DESC LIMIT ?";

mysqlDB.query(query, ['app_articles', limitValue], function (mysqlError, mysqlRes) {
    if(mysqlError){
        return res.status(500).send({message: "error_server_db"});
    }else if(mysqlRes.length<1){
        return res.status(404).send({message: "warning_empty_list"});
    }else{
        //All good
        return res.status(200).send(mysqlRes);
    }
    throw mysqlError;

})

});

我要求

{{api_base_url}}/api/v1/fetch/limitedArticles/2

我得到这个错误;

{
"message": {
    "code": "ER_PARSE_ERROR",
    "errno": 1064,
    "sqlMessage": "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''2'' at line 1",
    "sqlState": "42000",
    "index": 0,
    "sql": "SELECT article_id, article_name, article_image, article_url FROM `app_articles` ORDER BY article_id DESC LIMIT '2'"
}

}

如果我删除参数值并在极限值(例如LIMIT 2)中输入“ 2”,则它可以工作。但这不像我展示的那样。

Mureinik:

limitValue是一个字符串-您应该将其转换为数字,以便可以在limit子句中使用:

const limitValue = Number(req.params.limit);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章