Estoy tratando de implementar un programa de adición básico en node.js que acepta 2 números a través de la URL (Solicitud GET) los agrega juntos, y da el resultado.node.js Error - lanzar nuevo TypeError ('primer argumento debe ser una cadena o Buffer');
var http = require("http"); var url1 = require("url"); http.createServer(function(request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); var path = url1.parse(request.url).pathname; if(path == "/addition") { console.log("Request for add recieved\n"); var urlObj = url1.parse(request.url, true); var number1 = urlObj.query["var"]; var number2 = urlObj.query["var2"]; var num3 = parseInt(number2); var num4 = parseInt(number1); var tot = num3 + num4; response.write(tot); response.write(number1 + number2); } else { response.write("Invalid Request\n"); } response.end(); }).listen(8889); console.log("Server started.");
Cuando corro, aparece el mensaje "Iniciado por el servidor" en la consola. Pero cuando solicito la url
`http://localhost:8889/addition?var=1&var2=20`
Estoy recibiendo el siguiente error:
http.js: 593 tiro nueva TypeError ('primer argumento debe ser una cadena o búfer');
Cuando comento la línea que muestra la variable 'tot', el código se está ejecutando, y la salida que obtengo es el valor concatenado de los 2 parámetros de obtención que paso. En este caso, pasa a ser 1 + 20 = 120. No puedo convertir los datos en formato numérico.
¿Dónde está el error en el código? ¿Y qué significa básicamente el mensaje de error?
Muchas gracias de antemano.
Tenga en cuenta que el mensaje de error también debería haber incluido el texto (suponiendo que el código se guarda como server.js): en el servidor. (server.js: 21: 18) que indica que el problema está en la línea 21. Eso ayuda a encontrar el problema rápidamente. –
jjrv