我创建了一个图片库网站。页面上有很多图像的位置,当我单击其中一张图像时,必须将其显示在具有完整详细信息的另一页中。这是我的路线文件,在其中获取图像文件并将其发送到另一个名为solo.ejs的页面:
app.get('/checkout/:filename', (req,res) => {
gfs.files.findOne({filename: req.params.filename}, (req,file) =>{
// Check if File
if(!file || file.length ===0)
{
return res.status(404).json({
err: 'No files exist'
});
}
// Check if image
if(file.contentType === 'image/jpeg' || file.contentType === 'image/png')
{
// Read output tp browser
var readstream = gfs.createReadStream(file.filename);
readstream.pipe(res);
res.render('solo',{files:file});
}
else
{
res.status(404).json({
err: 'Not an image'
});
}
});
});
以下代码说明了单独页面中的显示部分:
<% if(typeof files !== 'undefined') {
console.log(files.filename); %>
<a href=""><img src="checkout/<%= files.filename %>" alt="" >
</a>
</div>
<% } else { %>
<p>No files to show </p>
<% } %>
我创建了一个console.log程序来检查solo.ejs中的图像是否可用。我得到的结果如下图所示:
{ _id: 5c46aa418f52fd4b7c5fb656,
length: 32497,
chunkSize: 261120,
uploadDate: 2019-01-22T05:29:37.314Z,
filename: '9cbddc89a382420db43a94a4fefce966.jpg',
md5: 'd560fc2c41085a78af1d66a8f21fb295',
contentType: 'image/jpeg',
metadata: { username: 'anne', age: '20' } }
为什么图像不显示在solo.ejs上?