node.js - ejs 模板中的 mongodb 图像未显示

标签 node.js mongodb mongoose insert-image

我正在尝试在 mongodb 中插入图像,然后我想在 ejs 模板中获取并显示该图像。

我的代码:

index.js

var uploadDir=__dirname+'/uploads';
 var images=Date.now()+'.jpg';
var storage=multer.diskStorage({
    destination:function(request, file, callback){
        callback(null, uploadDir);
        },
        filename:function(request, file, callback){
            console.log(file);
            callback(null, images);
            }
    });
    var upload=multer({storage:storage}).single('photo');

/*============== blog Insert============*/
router.post('/add', upload, function(req, res, next){
    new blogs({
        title: req.body.title,
        description:req.body.description,
        categories:req.body.category,
        img:images,
        date:Date.now()
        }).save(function(err, doc){
             res.send('Inserted');
        });
    });

图像已成功插入到集合中作为文件名,并存储在磁盘空间中。 当我尝试通过写入来获取图像时:

<img src="./routes/uploads/<%= blogdata.img%>" />

在我的 View 页面中,图像不存在。我转向该页面的 viewsouce 代码及其显示的完整路径,即

<img src="./routes/uploads/1459772396796.jpg">

最佳答案

显示您定义用于上传的路由/静态文件服务的代码。相对路径没有 URL 的意义,通常您的 URL 也不包含 routes,因此页面源代码应该为 /uploads/1459772396796.jpg

根据您的评论,您有两个静态目录,不确定您是否可以做到这一点,但无论我所说的路径不包含 routes 部分。

关于node.js - ejs 模板中的 mongodb 图像未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36417742/

相关文章:

python - MongoDB - 不存在字段的错误处理

mongodb - hadoop mongodb 连接器 - 输出数据不是 mongodb 而是 hdfs

mongodb - 如何在不访问 Ubuntu 16.10 中的 Mongo shell 的情况下设置 featureCompatibilityVersion?

node.js - 当文档更新时,MongooseJS 会弄乱预导入的数据

node.js - Mongoose 嵌套数组、树和嵌入式文档

javascript - 如何使用 Node.js 每 10 秒发送一封电子邮件?

node.js - package.json 语法错误

javascript - JavaScript 对象参数中的 Node.js 字符串

node.js - socket.io - io.sockets.adapter 对象?

Node.js 错误 - 返回 process.dlopen(module, path._makeLong(filename));