Node.js:如何从axios get请求读取参数?

时间:2018-08-06 21:44:25

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

所以我在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之类的东西,但它们似乎都不起作用。

1 个答案:

答案 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;