所以我在我的 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 之类的东西,但它们似乎都不起作用。
最佳答案
首先,您将后端暴露给 SQL 注入(inject)。你永远不应该将你的 sql 查询与你无法控制的外部值连接起来。请阅读有关 SQL 注入(inject)的信息: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;
关于mysql - Node.js:如何从 axios get 请求中读取参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51716053/