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.
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.");
When I run, I'm getting 'Server started' message in the console. But when i request the url
`http://localhost:8889/addition?var=1&var2=20`
I'm getting the following error :
http.js:593 throw new TypeError('first argument must be a string or Buffer');
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.
Where is the mistake in the code? And what does the error message basically mean?
Many thanks in advance.