当前位置: 代码迷 >> JavaScript >> 从节点js中的数据库检索图像
  详细解决方案

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

热度:38   发布时间:2023-06-05 14:09:36.0

我上传了文件并将其路径保存在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);

它返回未定义

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

console.log(data);

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

console.log(data.caption);

它返回未定义

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

您是否不必像这样在image标签中将其关闭?

<img src="<%= file.file_thumbnail %>" alt="Image">
  相关解决方案