Cheerio / node.js:替换每个img元素的src属性

时间:2019-01-08 02:01:41

标签: javascript html node.js cheerio

所以我在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);

0 个答案:

没有答案