2016-06-30 1 views
0

Я новичок в Node JS и пытаюсь создать свой собственный веб-сервер для размещения моего самого базового веб-сайта на моем Linux-сервере (Raspberry Pi). Следующий код показывает index.html, но не отображает файл users.html. Пожалуйста, укажите, что я делаю неправильно. У меня есть оба файла index.html и users.html в этой папке. (Sidenote: Я знаю, что CSS & такой еще не реализован, я только в начале написания этого веб-сервера).Почему мой сайт js webserver не работает для дополнительных страниц?

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..."); 
+0

'request.method == 'Get'' - должно быть' GET' во всех шапках. – brandonscript

ответ

0

У вас есть опечатка во втором заявлении if.

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

вместо этого должен быть

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

методы HTTP всегда капитализируются, вы сервер видит метод "GET". URL-адрес не соответствует первому оператору IF, а метод не соответствует во втором, поэтому он переходит к else и дает вам 404 не найден.

Смежные вопросы