【问题标题】:MySQL Query run through NodeJS and Express returning Buffer data通过 NodeJS 和 Express 返回缓冲区数据运行的 MySQL 查询
【发布时间】:2022-12-05 17:54:46
【问题描述】:

对 JavaScript 和 API 构建非常陌生。我正在编写一个简单的地址验证系统,但我遇到了一个问题,即除了我要查询的列的响应之外,响应还发送缓冲区数据。我知道我应该返回行和字段,但不知道如何将其放入代码中。

这是我目前对主要查询的看法:

app.get("/addresses/api/find/", async (req, res) => {
try {
    const address1 = req.query.Address1;
    const address2 = req.query.Address2;
    const city = req.query.City;
    const state = req.query.State;
    const zip = req.query.ZipCode;
    
    console.log(req.body);
    const findAddress = await pool.query ("SELECT * FROM addresses WHERE Address1 = ?", 
    [
        address1,
    ]
    );
    
    res.json({
        status: "Success: 200",
        message: "There was a match to your address.",
        findAddress
        });

} catch (err) {
    console.error(err.message)
        }    
    })

这是没有完全匹配时返回的部分内容:

{
"status": "Success: 200",
"message": "There was a match to your address.",
"findAddress": [
    [],
    [
        {
            "_buf": {
                "type": "Buffer",
                "data": [
                    1,
                    0,
                    0,
                    1,
                    6,
                    47,
                    0,
                    0,
                    2,
                    3,
                    100,

我仍在研究拒绝空集的逻辑,但我还没有走那么远。

谢谢你。

【问题讨论】:

    标签: mysql node.js express


    【解决方案1】:

    实际上,我能够通过将变量放入括号中并仅请求返回该信息来将输出限制为仅行。

    console.log(req.body, "Get request reached.");
    const [address] = await pool.query ("SELECT * FROM addresses WHERE (Address1, City, State, ZipCode) = (?, ?, ?, ?)",
      [
        address1,
        city,
        state,
        zip
      ],
    );
    

    它给了我这样的回应:

    {
      "status": "Success: 200",
      "message": "There was a match to your address.",
      "address": [
        {
          "id": 112,
          "Address1": "16 Blue Sage Circle",
          "Address2": "",
          "City": "Atlanta",
          "State": "GA",
          "ZipCode": "30318-1030"
        }
      ]
    }
    

    【讨论】:

      【解决方案2】:

      尝试将数据值转换为字符串类型,然后你可以看到结果。

      【讨论】:

      • 您的答案可以通过其他支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写出好的答案的信息in the help center
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-01
      • 1970-01-01
      • 2017-10-23
      • 1970-01-01
      • 1970-01-01
      • 2017-10-29
      • 2020-08-31
      相关资源
      最近更新 更多