所以我在node.js后端收到了一个post对象。该对象的content属性包含HTML字符串。此HTML字符串可以包含一个或多个img元素,其中src属性是基数为64的字符串。
我的目标是用路径替换每个基本的64个字符串。我可以使用Cheerio替换单个图像的属性,但是当我尝试下面的代码一次处理多个img元素时,基本64字符串不会被路径替换。
有人可以提出一些建议以使这项工作有效吗?
因此,当请求正文包含帖子图像时,我们将在代码块中运行代码。我们等待内容HTML的加载。然后,我们尝试选择此HTML字符串中的所有img元素。然后,我的目标是遍历他们找到的img元素,然后在我们在数据库中创建发布文档之前将其src属性从base 64更改为path。不幸的是,下面的console.log显示src属性仍然是基数为64的字符串。
if (req.body.post_images) {
const $ = await cheerio.load(req.body.content);
const img = $('img');
img.each((i) => {
$(this).attr('src', `http://localhost:3000/uploads/${req.body.post_images[i].modified_name}`);
});
req.body.content = $.html();
}
console.log('CONTENT', req.body.content);
const post = await Post.create(postData);