Error de node.js: lanzar un nuevo TypeError ('el primer argumento debe ser una cadena o Buffer');
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 y da el resultado.
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, recibo el mensaje 'Servidor iniciado' en la consola. Pero cuando solicito la url
`http://localhost:8889/addition?var=1&var2=20`
Estoy recibiendo el siguiente error:
http.js: 593 lanza un nuevo TypeError ('el primer argumento debe ser una cadena o un 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, sucede que es 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.