【问题标题】:Node.js: How to read parameters from an axios get request?Node.js:如何从 axios get 请求中读取参数?
【发布时间】:2018-08-06 21:44:25
【问题描述】:

所以我在我的 ReactJS 项目中有一个 axios 请求:

axios.get(URL, {params: {id: id}}

这几乎可以通过如下 URL 向我的后端传递一个 get 请求:

URL?id=id

我还有一个运行 mysql 查询的 Node.js Lambda 函数,如下所示:

connection.query("SELECT * FROM database.USER WHERE ID = '"+event.id+"'", function (error, results, fields))

所以我知道这不起作用,因为我通过 URL 传递参数,这不适用于事件

我正在尝试让我的 Node.js 函数从我的 URL 参数中读取 id,但我似乎不知道这样做的语法。

有人知道如何从 Node.js 函数中获取参数吗?我尝试过 params.id、@id、:id、params[0].id 之类的东西,但它们似乎都不起作用。

【问题讨论】:

    标签: mysql node.js lambda parameter-passing axios


    【解决方案1】:

    首先,您将后端暴露给 SQL 注入。您永远不应该将您的 sql 查询与您无法控制的外部值连接起来。 SQL注入请阅读:https://www.w3schools.com/sql/sql_injection.asp

    您必须使用 mysql2 库和准备好的语句 SEE: (https://github.com/sidorares/node-mysql2/blob/master/documentation/Prepared-Statements.md)

    由于您使用的是 AWS lambda,因此您使用以下方式从查询中读取值:

    const id = event.queryStringParameters ? event.queryStringParameters.id : null;

    【讨论】:

    • 谢谢你。后续问题:您是否需要检查 API Gateway 中的 Lambda 代理集成才能使用 event.queryStringParameters 还是可以按原样调用它?
    • 我不确定,但我认为你可以这样称呼它!
    猜你喜欢
    • 2019-07-27
    • 2020-08-26
    • 2011-09-06
    • 2017-05-09
    • 1970-01-01
    • 2013-11-01
    • 2021-11-17
    • 1970-01-01
    • 2021-06-15
    相关资源
    最近更新 更多