Я написал код server.js ниже:Почему я перенаправлен на страницу 404?
// Require modules
const http = require('http');
const url = require('url');
const path = require('path');
const fs = require('fs');
// Array of Mime Types
const mimeTypes = {
"html" : "text/html",
"jpeg" : "image/jpeg",
"jpg" : "image/jpeg",
"png" : "image/png",
"js" : "text/javascript",
"css" : "text/css"
};
// Create Server
const server = http.createServer(function(req, res){
const uri = url.parse(req.url).pathname;
const fileName = path.join(process.cwd(),unescape(uri));
console.log('Loading '+ uri);
const stats;
try{
stats = fs.lstatSync(filename);
} catch(e) {
res.writeHead(404, {'Content-type': 'text/plain'});
res.write('404 Not Found\n');
res.end();
return;
}
// Check if file/directory
if(stats.isFile()){
const mimeType = mimeTypes[path.extname(fileName).split(".").reverse()[0]];
res.writeHead(200, {'Content-type': mimeType});
const fileStream = fs.createReadStream(fileName);
fileStream.pipe(res);
} else if(stats.isDirectory()){
res.writeHead(302,{
'Location' : 'index.html'
});
res.end();
} else {
res.writeHead(500, {'Content-type' : 'text/plain'});
res.write('500 Internal Error\n');
res.end();
}
}).listen(3000);
У меня есть страница index.html, который просто говорит тест и вместо рендеринга, что в браузере я получаю 404 Страница не найдена. Поскольку я обновил файл server.js, я считаю, что проблема есть, но я не совсем уверен.
Кто-нибудь видит, как этот код сервера мог быть написан для лучшего сервера файла index.html, который у меня есть в проекте?
Я бы предположил, что индексный файл находится в неправильном месте. Что выводит строка consolde.log («Загрузка» + uri)? Кроме того, в catch (e), который записывает 404, попробуйте console.log (e) и console.log (e.stack). Это должно дать вам больше информации для решения проблемы. –