2016-06-07 60 views
1

一旦我打开'localhost:3000',图像被下载到我的笔记本电脑,而不是显示在网页上,任何人都可以请帮我吗?图像显示错误使用node.js和express.js

var express= require('express'); 
var fs = require('fs'); 
var app= express(); 

var imgpath= 'C:\Users\Rohit\Downloads\images.jpg'; 

app.get('/',function(req,res){ 
    res.send(fs.readFileSync(imgpath)); 
}); 

app.listen(3000); 
console.log('listening'); 
+0

您需要将图像URL传递给视图,因此使用'res.render( '');',并在该视图中写' '在网页上显示。 –

+0

你能解释为什么res.send不会在这里工作,它对字符串或json项目的工作方式? – Robin

回答

4

您必须设置标题。

app.get('/',function(req,res){ 
    res.set('Content-Type', 'image/jpg');//Added line 
    res.send(fs.readFileSync(imgpath)); 
}); 
+0

我是新来的所有这些先生,你能解释为什么我们必须设置标题? – Robin

+0

默认情况下,浏览器期望content-type:text/html。浏览器尝试通过url的扩展名来识别,如果它是图片或pdf。无法通过扩展名识别,然后浏览器下载该文件。 –

+0

,但在URL - .jpg被提及,为什么不能将它识别为图像? – Robin

0

必须设置内容类型

res.type('jpg').send(fs.readFileSync(imgpath)); 
相关问题