我想在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