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

标签 mysql node.js lambda parameter-passing axios

所以我在我的 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/

相关文章:

node.js - 如何在angular 2项目中使用 "regression-js"

javascript - 如何使用 node-hid 库将来自 device.on() 方法的数据响应转换为字符串

javascript - 在查询 mongodb 之前,如何检查 mongo db 中是否存在字段?

if-statement - Google Sheets ArrayFormula 用于比较多个不同行中的多个单元格

C++ for_each 调用回调函数 vector 并向每个回调函数传递一个参数

php - 从数据库中选择具有相同 ID 的最小数量

mysql - 从表中选择 col_a in() 仅在 col_b 值匹配的地方

php - MYSQL语句中无法正确选择FROM日期

php - 为选择查询临时向 MySQL 列中的数据添加一个字符

c# - 从事件 c# 中取消订阅 lambda 表达式