我想在node.js中实现一个基本的附加程序,它通过URL(GET请求)接受2个数字并将它们加在一起,并给出结果。node.js错误 - 抛出新的TypeError('第一个参数必须是字符串或缓冲区');
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.");
当我运行时,我在控制台中收到'服务器启动'消息。但是,当我要求
`http://localhost:8889/addition?var=1&var2=20`
,我发现了以下错误的网址:
http.js:593 抛出新的TypeError(“第一个参数必须是一个字符串或缓冲区”);
当我注释掉显示变量'tot'的行时,代码正在运行,并且我得到的输出是我传递的2个get参数的连接值。在这种情况下,它恰好是1 + 20 = 120. 我无法将数据转换为数字格式。
代码中的错误在哪里?这个错误信息基本上是什么意思?
许多在此先感谢。
请注意,错误消息还应包含文本(假定代码保存为server.js):在服务器上。(server.js:21:18)它告诉问题在第21行。这有助于快速找到问题。 –
jjrv