Home > Back-end >  MySQL Query run through NodeJS and Express returning Buffer data
MySQL Query run through NodeJS and Express returning Buffer data

Time:10-20

very new to JavaScript and API building. I'm writing a simple address verification system and I'm running into an issue where the response sends the buffer data in addition to the response of the columns that I want to query. I know that I should be returning rows and fields, but do not know how to fit it into the code.

This is what I currently have for the main query:

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)
        }    
    })

And this is a part of what is returned when there is no exact match:

{
"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,

I'm still working on the logic to reject an empty set, but I have not gotten that far, yet.

Thank you.

CodePudding user response:

try to covert data value to string type ,then you can see results.

CodePudding user response:

I was actually able to limit the output to only the rows by dropping by variable into brackets and requesting only that information back.

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

It gave me this response:

{
"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"
    }
]

}

  • Related