Javascript Node.js:对象在响应对象中转换为未定义

Javascript Node.js:对象在响应对象中转换为未定义,javascript,node.js,Javascript,Node.js,我有一个简单的函数,定义如下 function upload(response, postData) { console.log("Received: " + postData); response.writeHead(200,{"Content-Type":"text/plain"}); response.write("You've sent text: " + querystring.parse(postData).text); response.end();

我有一个简单的函数,定义如下

function upload(response, postData) {
    console.log("Received: " + postData);
    response.writeHead(200,{"Content-Type":"text/plain"});
    response.write("You've sent text: " + querystring.parse(postData).text);
    response.end();
}
当我将数据登录到控制台时,它显示正确,但写入响应对象时显示为“未定义”。为什么会发生这种情况?我的密码有错误吗

全部代码 route.js requestHandler.js
代码在使用和不使用
postData
时执行两次。谢谢李纳斯·盖尔。在发布之前,我应该更清楚地了解代码。

我认为这是一种打字错误

querystring.parse(postData).undefinedtext 
用于requestHandler.js中的上载函数


我正在完成同一个教程,也被困在这里。

这显然有点晚了,但我有和你一样的确切错误,但我没有执行两次路由。我的错误是postData变量未定义,因此

undefinedtext=sometext+querttest 

这个问题很容易解决,我初始化了你的postData=“”。希望这有助于任何未来的游客被困在这里

您可以发布显示函数调用及其参数的代码吗?直觉告诉我们,您的post数据中没有项目
text
。您可以在代码中添加
console.log(querystring.parse(postData))
,并在此处显示结果吗?console.log可以很好地打印它。您可以看到上面的全部代码。我有一个UpdateEdit,看起来您将两次路由每个请求,一次带
postData,一次不带
postData
。要添加更多细节,可以通过从server.js中删除第二个路由请求来修复此问题:
路由(句柄、路径名、响应)(这已由“结束”事件处理)。
var http = require("http");
var url = require("url");

function start(route,handle) {

    function onRequest(request,response) {
        var postData = "";
        var pathname = url.parse(request.url).pathname;
        console.log("Request received for " + pathname + " received.");
        request.setEncoding("utf8");
        request.addListener("data", function(postDataChunk) {
            postData += postDataChunk;
            console.log("Received POST data chunk '" + postDataChunk + "'.");
            });
        request.addListener("end", function() {
            console.log(postData);
            route(handle, pathname, response, postData);
            });
        route(handle,pathname,response);
    }

    http.createServer(onRequest).listen(8888);
    console.log("Server has started...");
}

exports.start = start;
querystring.parse(postData).undefinedtext 
undefinedtext=sometext+querttest