所以我在我的ReactJS项目中有一个类似于此的axios请求:
axios.get(URL, {params: {id: id}}
这很可能会将一个get请求传递给我的后端,URL如下:
URL?id=id
我还有一个mysql函数,它运行Node.js查询,如下所示:
connection.query("SELECT * FROM database.USER WHERE ID = '"+event.id+"'", function (error, results, fields))
因此,我知道这是不起作用的,因为我通过URL传递了一个params,这对event不起作用
我试图让我的Node.js函数从我的URL参数中读取id,但我似乎不知道这样做的语法。
有人知道如何从Node.js函数中获取参数吗?我尝试过像params.id,@id,:id,params.id这样的东西,但它们似乎都不起作用。
发布于 2018-08-07 06:11:03
首先,您将后端暴露给SQL注入。您永远不应该将sql查询与您无法控制的外部值连接起来。请阅读有关SQL注入的信息:https://www.w3schools.com/sql/sql_injection.asp
您必须使用mysql2库和预准备语句,请参阅:(https://github.com/sidorares/node-mysql2/blob/master/documentation/Prepared-Statements.md)
由于您使用的是AWS lambda,因此您可以使用以下命令从查询中读取值:
const id = event.queryStringParameters ? event.queryStringParameters.id : null;
https://stackoverflow.com/questions/51716053
复制相似问题