Estoy tratando de aprender algo de Node.js y este es mi primer proyecto tutorial. Aunque cambié algunas cosas menores, principalmente seguí este tutorial. https://www.youtube.com/watch?v=PFJHQ2g6s0k&ab_channel=ItsTechMode
Mi código JS está debajo.
const http = require('http'); const url = 'https://api.openweathermap.org/data/2.5/weather?q=Athens,GR&appid=a7003b6a9783fdc3503466334cbd605b&units=metric'; let data; var server = http.createServer(function(request,response){ var request = require('request'); response.writeHead(200, {'Content-Type': 'text/plain'}); response.write("Hello write"); response.end('Hello World\n'); request({ url: url }, (error, response, body) => { if (error) { console.log(error) } let data = JSON.parse(body); response.write("Trying to print this."); response.end(); // response.write("<html><body><div id='container'>"); // response.write("<h1>" +"City Name - :"+ data['name']+"<br>"+"</h1>"); // response.write("<h2>"+ "Temperature - :" + data.main['temp'] + "<br>"+"</h2>"); // response.write("<h2>"+"Sunset Time - :"+ new Date(data.sys["sunset"]+1000)+ "</h2>"); // response.write("</div></body></html>"); console.log(response.body) response.end(); }); }).listen(8000, "127.0.0.1");Obtengo el "TypeError: response.write no es una función" Stackoverflow no me permite agregar una imagen. así que aquí hay un enlace a la captura de pantalla del error. ¿Puede alguien ayudarme al respecto? Además, lo siento si el formato de esta publicación se ve extraño. Traté de hacer que se viera lo mejor que pude, pero soy un novato por aquí.
La response del parámetro en esta línea:
var server = http.createServer(function(request,response){...}
Es lo que necesita usar para hacer cosas como "response.write", sin embargo aquí:
request({ url: url }, (error, response, body) => {
Tiene algún otro parámetro que está llamando "respuesta". Eso hace que la variable de "respuesta" original sea inaccesible.
Cambie el nombre del parámetro en la request(...) llamada a "resp" o algo así. Y asegúrese de usar "resp.body" dentro de la devolución de llamada.