从节点js中的数据库检索图像

时间:2019-02-25 08:49:01

标签: javascript node.js mongodb multer

我上传了一个文件并将其路径保存在mongodb中,并希望以html格式显示图像,这是我上传文件的代码

route.post('/dashboard/upload',ensureAuthenticated,(req,res) => {
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
        // console.log(files.file_thumbnail.type);
        if(files.file_thumbnail.type !== 'image/jpeg' ){
            console.log("File is not image");
            res.render('upload');
        } else {

            var oldpath = files.file_thumbnail.path;
            var newpath = '../uploads/' + files.file_thumbnail.name;
            fs.rename(oldpath, newpath, function (err) {
            if (err) throw err;
            // console.log(fields.file_name);
            console.log('File uploaded successfully!');
            res.render('upload');
            var newfile = new file({
                caption : fields.caption,
                file_thumbnail : newpath    
            });
            newfile.save()
                .then(chllange => {
                    console.log("New File Added");
                })
                .catch(err => console.log(err));
            });

        }
    });
});

这是我的表演图片代码

route.get('/dashboard/files',(req,res) => {
    file.find({},['file_thumbline','caption'],{sort:{_id:-1}}, (err, data) => {
        console.log(data);
        res.render('files', {file: data});
    });

});

这是我的图片HTML代码

<img src="<%= file.file_thumbnail %>" alt="Image">
<p><%= file.caption %></p>

在渲染代码后出现错误,它显示更改文本,并且在inspect元素中显示img src(未知)

修改 在显示图片代码中

console.log(data);

它返回所有json数据,但是当我得到

console.log(data.caption);

返回未定义

2 个答案:

答案 0 :(得分:0)

  

在显示图片代码中进行编辑

     

console.log(data);

     

它返回所有json数据,但是当我得到

     

console.log(data.caption);

     

返回未定义

您正在从mongo收到一个数组。因此,如果要访问它,则需要选择一个项目,即。数据[0]。标题

答案 1 :(得分:-1)

您不必像这样在图像标签中将其关闭吗?

<img src="<%= file.file_thumbnail %>" alt="Image">