2013-07-12 3 views
0

У меня проблема с этим, я использую framework.js для обработки запросов к моему index.html. В файле index.html есть несколько изображений, но он не отображается для моих пользователей! Я читаю оба файла, index.html и .png. Можете ли вы, ребята, помочь мне? Вот мои server.js:Node.js сервер не показывает изображение

var app = require('http').createServer(handler) 
var io = require('socket.io').listen(app) 
var fs = require('fs') 

app.listen(4000); 

function handler (req, res) { 
    fs.readFile(__dirname + '/index.html', 
    function (err, data) { 
    if (err) { 

     return res.end('Error loading index.html'); 
    } 

    res.end(data); 

    }); 


    fs.readFile(__dirname + '/blackq.png', function (err, data) { 
    if (err) { 

     return res.end('Error loading index.html'); 
    } 

    res.end(data); 

    }); 


} 

Большое спасибо заранее!

+0

просьба о HTML и тому PNG будет ** два отдельных запросов **. Весь ваш код - это return 'index.html' для каждого отдельного запроса на сервер, независимо от запрашиваемого файла. –

+0

, но я хочу включить запрос index.html, содержащий файлы изображений, как мне это сделать? спасибо за ответ u – TiagoM

+0

Вам нужно посмотреть 'req' ([документация здесь] (http://nodejs.org/api/http.html#http_http_incomingmessage)), чтобы определить, какой URL-адрес запрашивал браузер, поэтому вы знаете который файл для отправки обратно. –

ответ

0

Быстрое решение только для доказательства концепции может идти, как это:

В вашем HTML файл, убедитесь, что у вас есть вкладка IMG сделано правильно.

<img src="/your_image.jpg" alt="your_image" style="width:304px;height:228px;">

В файле node.js сервера, добавив

if (req.url == "/index.html") { 
    //res.end your html file 
    return; 
    } 

    //to display image 
    if (req.url == "/your_image.jpg") { 

    var img = fs.readFileSync('./your_image.jpg'); 
    res.writeHead(200, {'Content-Type': 'image/jpg' }); 
    res.end(img, 'binary'); 

    return; 

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