所以我在ReactJS项目中有一个axios请求:
axios.get(URL, {params: {id: id}}
这几乎会将带有URL的get请求传递到我的后端,如下所示:
URL?id=id
我还有一个Node.js Lambda函数,可以像这样运行mysql查询:
connection.query("SELECT * FROM database.USER WHERE ID = '"+event.id+"'", function (error, results, fields))
所以我知道这是行不通的,因为我通过URL传递了参数,而URL对事件不起作用
我试图让我的Node.js函数从URL参数中读取ID,但是我似乎不知道这样做的语法。
有人知道如何从Node.js函数中获取参数吗?我已经尝试过诸如params.id,@ id,:id,params [0] .id之类的东西,但它们似乎都不起作用。
答案 0 :(得分:4)
首先,您将后端暴露给SQL Injection。您切勿将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;