Soy desarrollador junior y quiero tu ayuda...
debajo de mi código de páginas
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]"debajo de mi código 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;mi proyecto se construye en reaccionar, siguiente js. Solía JSON.parse() y JSON.stringify() y toString() ... etc. pero no puedo encontrar una forma de datos reales. ¿Qué pasa con mi código? ayúdenme por favor chicos
Creo que el código del servidor es el problema. Debe esperar a que se complete la devolución de la llamada y luego enviar la respuesta.
response.status(200).end( `${dns.resolveAny(searchData, function (err: any, addresses: any) { return addresses; })}` );En el código frontal, debe eliminar la espera frente a Axios que no es necesaria.
Primero declare que los encabezados sean Aplicación/Json
axios.get('m', { encabezados: { 'Tipo de contenido': 'aplicación/json' } })