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.

Respuestas a la pregunta(1)

Su respuesta a la pregunta