为什么我的节点js webserver不能用于额外的页面?

时间:2016-06-30 18:19:05

标签: html node.js

我是Node JS的新手,并尝试创建自己的网络服务器来在我的linux服务器(Raspberry Pi)上托管我的基本网站。以下代码显示index.html,但不显示users.html文件。请指出我做错了什么..我在这个文件夹中有index.html和users.html文件。 (旁注:我知道CSS&还没有实现;我只是在编写这个网络服务器的开始)。

var http = require('http');
var fs = require('fs');

//404 response
function send404Response(response){
        response.writeHead(404, {"Content-Type": "text/plain"});
        response.write("Error 404: Page not found!");
        response.end();
}

//Handles user request
function onRequest(request, response){
        if(request.method == 'GET' && request.url == '/'){
                response.writeHead(200, {"Content-Type": "text/html"});
                fs.createReadStream("./index.html").pipe(response);
        }else if(request.method == 'Get' && request.url == '/users'){
                response.writeHead(200, {"Content-Type": "text/html"});
                fs.createReadStream("./users.html").pipe(response);
        }
        else{
                send404Response(response);
        }
}

http.createServer(onRequest).listen(8884);
console.log("Server is running...");

1 个答案:

答案 0 :(得分:0)

第二个if语句中有拼写错误。

else if(request.method == 'Get' && request.url == '/users'){

应该是

else if(request.method == 'GET' && request.url == '/users'){

HTTP方法总是大写,您的服务器正在看到“GET”方法。该URL与第一个IF语句不匹配,并且该方法在第二个IF语句中不匹配,因此它会转到else,并为您提供404未找到。