nodeJS: использовать (fs), чтобы попытаться получить доступ к статическому ресурсу, но получить ошибку 404?

Я пытаюсь сгенерировать URL-адрес с помощью nodeJS, который указывает на статический ресурс, который является файлом JS. Выдает ошибку 404, не найдено.

Сначала я запускаю сервер узла с node index.js

В файле node.js есть следующее:

var fs = require('fs');

function serveStaticFile(res, path, contentType, responseCode) {
    if(!responseCode) responseCode = 200;
    fs.readFile(__dirname + path, function(err,data){
        if(err){
            res.writeHead(500,{'Content-Type': 'text/plain'});
            res.end('500 - Internal Error');
        } else {
            res.writeHead(responseCode,
                    {'Content-Type': 'text/plain'});
            res.end(data);
        }
    });
}

http.createServer(function(req,res){

    var path = req.url.toLowerCase();
    switch(path) {
        case '/avisarPagoAhora':
                serveStaticFile(res, '/avisoPago/avisos-de-pago.html', 'text/html');
                break;
        default:
                res.writeHead(404,{'Content-Type': 'text/plain'});
                res.end('Not Found');
                break;      
    }


}).listen(3000);

console.log('Server started on localhost:3000; press Ctrl-C to terminate...');

Теперь у меня есть index.js внутри var/www/html/avisoPago.

И мой файл avisos-de-pago.html находится в папке avisoPago, которая находится внутри avisoPago.

Таким образом, путь к index.js: var/www/html/avisoPago/index.js

И путь к файлу avisos-de-pago.html: var/www/html/avisoPago/avisoPago/avisos-de-pago.html

Что я делаю, если он не находит файл, когда я набираю http://myDomain:3000/avisarPagoAhora< /а>


person Rosamunda    schedule 10.05.2016    source источник
comment
Сделайте console.log(__dirname + path), чтобы увидеть, какой файл он на самом деле ищет.   -  person jfriend00    schedule 10.05.2016


Ответы (1)


var path = req.url.toLowerCase(); Функция "toLowerCase" превращает "avisarPagoAhora" в "avisarpagoahora" и из-за этого узел не может найти правильный путь '/avisarPagoAhora'. Попробуйте удалить функцию toLowerCase или сделать оператор case "case '/avisarpagoahora':"

person Caio Fontes    schedule 10.05.2016