React axios JSON.stringify() 用于 [Object object] -> "[Object object]"

问题描述 投票:0回答:2

我是初级开发人员,我需要你的帮助...

在我的页面代码下方

  const sendAnotherIp = async () => {
    const domain_format = /^(((http(s?))\:\/\/)?)([0-9a-zA-Z\-]+\.)+[a-zA-Z]{2,6}(\:[0-9]+)?(\/\S*)?/;

    if (domain_format.test(anotherIp)) {
      await axios
        .get(`${process.env.NEXT_PUBLIC_CLIENT_URL}/api/dnslookup`, {
          params: {
            search: anotherIp,
            date: nowTime,
          },
        })
        .then((res) => {
          alert(res.data);
        });
    } else {
      alert("it's wrong domain format");
    }
  };

  console.log(JSON.stringify(data)); -> "[Object object]"

在我的API代码下面

import { NextApiRequest, NextApiResponse } from "next";
const sqlite3 = require("sqlite3").verbose();
const dns = require("dns");

interface Iquerys {
  search: string;
  date: string;
}

interface IUrl {
  ip: string;
}

const dnslookup = (request: NextApiRequest, response) => {
  const req = response.req;

  const querys: Iquerys = req.query;

  const searchData = querys.search;
  const dateData = querys.date;


// below my logic
  response.status(200).end(
    `${dns.resolveAny(searchData, function (err: any, addresses: any) {
      return addresses;
    })}`
  );
//

  // db connect
  let db = new sqlite3.Database("./db/my_database.db", (err) => {
    if (err) {
      return console.log(err.message);
    }
    console.log("Connected to database!");
  });

  // db peristalsis
  db.run("INSERT INTO DnsLookup(search, date) VALUES (?, ?)", [searchData, dateData], (err) => {
    if (err) {
      return console.log(err.message);
    }
    console.log("Row was added to the table: ${this.lastID}");
  });
};

export default dnslookup;

我的项目是用 React 构建的,下一个是 js。 我曾经使用 JSON.parse() 和 JSON.stringify() 和 toString() ...等 但我找不到获取真实数据的方法。 我的代码有什么问题吗?请帮助我,伙计们

javascript reactjs axios
2个回答
0
投票

我认为服务器代码有问题。您应该等待回电完成,然后发送回复。

response.status(200).end(
    `${dns.resolveAny(searchData, function (err: any, addresses: any) {
      return addresses;
    })}`
  );

前端代码中,将axios前面不需要的await去掉。


0
投票

首先将标头声明为

application/json

axios.get('m', {
    headers: {
        'Content-Type': 'application/json'
    }
})
© www.soinside.com 2019 - 2024. All rights reserved.