Javascript 使用base64在服务器端渲染图像时工作不正常

Javascript 使用base64在服务器端渲染图像时工作不正常,javascript,node.js,express,base64,pug,Javascript,Node.js,Express,Base64,Pug,首先-这是我在这里的第一篇文章,所以我在开始这个问题的时候,非常感谢在我建立第一个真实网站的过程中,我收到了几个月的匿名帮助。也就是说,如果这个问题的格式化(和我的代码LOL)不符合标准,请原谅我。我会尽量只包括相关的内容。也就是说,我在将base64字符串呈现到pug模板上时遇到了一些问题 我通过带有enctype='multipart/formdata'的表单输入将一个图像文件发送到一个API(在本例中是一个JPG)。我已经做得很好了。然而,我也希望抓取上传的图像,并在API响应后将其显示在

首先-这是我在这里的第一篇文章,所以我在开始这个问题的时候,非常感谢在我建立第一个真实网站的过程中,我收到了几个月的匿名帮助。也就是说,如果这个问题的格式化(和我的代码LOL)不符合标准,请原谅我。我会尽量只包括相关的内容。也就是说,我在将base64字符串呈现到pug模板上时遇到了一些问题

我通过带有enctype='multipart/formdata'的表单输入将一个图像文件发送到一个API(在本例中是一个JPG)。我已经做得很好了。然而,我也希望抓取上传的图像,并在API响应后将其显示在我渲染到的路径上

articles.js:

。。。
router.post('/add',upload.single(),函数(req,res){
if(req.files.upfile.data){
global.d=new Buffer(req.files.upfile.data,'binary')。toString('base64')//我最初作为对象接收数据//
//api格式化在此之后//
让文章=新文章();
//指定文章属性1-5、作者等
第1条图像=d;
文章保存((错误)=>{
如果(错误){
控制台日志(err);
}否则{
请求闪存(“成功”,“添加日志”)
res.redirect('/');}
});
}
});
...
路由器.get('/:id',函数(req,res){
Article.findById(req.params.id,函数(err,Article){
User.findById(article.author,函数(err,User){
res.render(‘物品’{
第条:第条,
作者:user.name,
第一条第一条,
第二条第二条,
第三条第三条,
第四条:第四条,
第五条第五条,
总计:第条总计,
图片:article.image
});
});
});

});我遇到了类似的问题,我认为这是因为二进制数据的格式不适合帕格。在你的路线上试试这个,它对我有用:

router.get('/:id', function(req, res){
  Article.findById(req.params.id, function(err, article){
    User.findById(article.author, function(err, user){
      res.render('article', {
        article: article,
        author: user.name,
        first: article.first,
        second: article.second,
        third: article.third,
        fourth: article.fourth,
        fifth: article.fifth,
        total: article.total,
        image: article.image.toString('base64')
      });
    });
  });
});
因此,将图像行更改为:


image:article.image.toString('base64')

请添加显示丢失图像图标的结果HTML。另外,如果您尝试
img(src='data:image/jpeg;base64,{article.image}')
?感谢您的回复–添加article.image错误。我有一个pug文件,在上面的article.js传递代码后,代码将在其中呈现,但是当我检查页面上的元素时(其他所有内容都正确呈现),我看到==$0。。。这是否意味着它没有从#{image}接收实际数据,而是尝试解码文本#{image}?有什么想法吗?可能重复你不能在属性中使用帕格插值;使用串联或ES2015模板字符串