title: node.js Error - throw new TypeError('first argument must be a string or Buffer');
body: <p>I'm trying to implement a basic addition program in node.js that accepts 2 numbers through the URL (GET Request) adds them together, and gives the result. </p>
  
  <pre>
  
      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.");
  
  </pre>
  
  <p>When I run, I'm getting 'Server started' message in the console. But when i request the url </p>
  
  <pre>`http://localhost:8889/addition?var=1&var2=20`</pre>
  
  <p>I'm getting the following error : </p>
  
  <p><strong>http.js:593
      throw new TypeError('first argument must be a string or Buffer');</strong></p>
  
  <p>When I comment out the line that displays the variable 'tot', the code is running, and the output I get is the concatenated value of the 2 get parameters I pass. In this case, it happens to be 1+20 = 120.
  I'm not able to convert the data into numerical format. </p>
  
  <p>Where is the mistake in the code? And what does the error message basically mean?</p>
  
  <p>Many thanks in advance. </p>