回应没有结束

时间:2017-08-22 09:05:12

标签: node.js webserver

我正在为我们的用户,集群,(单一)节点管理等项目创建一个前端应用程序。

我决定使用HTML和JavaScript创建前端,并使用NodeJS创建服务器端功能。

我已经创建了Web服务器,可以处理定义的路由和文件;我决定将操作拆分为函数。从我收集的关于JavaScript的内容来看,如果参数不是对象,则按值调用参数,如果它们是对象,则通过引用调用参数?

如果是这种情况,为什么我不能从外部函数结束()我的请求?如果可以的话,我该怎么做?

谢谢!

以下代码供参考。

// Define server functionality
    if (request.method === "GET") {
        // All GET functions/routes go here
        if (routes[request.url]) {
            // Route was found!
            // Execute handler function
            routes[request.url](request, response);
        } else {
            // No such route found in the hashtable
            // Check if it's a file
            var filePath = __dirname + request.url;
            if (fs.existsSync(filePath)) {
                // It's a file and was found!
                //zOMG!!!1!elf
                var mimeType = mime.contentType(path.extname(filePath));
                var content = null;
                if (mimeType.indexOf("text") > -1) {
                    // File contains text
                    content = fs.readFileSync(filePath, "UTF-8");
                } else {
                    // File is binary
                    content = fs.readFileSync(filePath);
                }
                //console.log(mimeType); // Output MIME type of each requested file
                response.statusCode = 200;
                response.setHeader("Content-Type", mimeType === false ? "application/octet-stream" : mimeType);
                response.end(content);
            } else {
                // File not found!
                console.log(`File ${filePath} was NOT FOUND!`);
                console.log("Cannot serve null!");
                error404(request, response);
            }
        }
    }

function error404(request, response) {
    "use strict";

    response.statusCode = 404;
    response.end();
}

1 个答案:

答案 0 :(得分:1)

发现自己答案

睡眠过少的典型症状。 修改代码后我忘了重启服务器。

捂脸