You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在NestJS中如何从HTML提取innerText以生成slug?

在NestJS中从HTML提取文本生成Slug的解决方案

你原来的代码报错是因为document是浏览器专属的DOM API,NestJS运行在Node.js后端环境中,不存在这个全局对象,所以无法执行document.createElement这类操作。下面提供两种Node.js环境下可行的方案:

方案一:使用cheerio(轻量HTML解析库)

cheerio是专门用于在Node.js中解析HTML的工具,语法和jQuery类似,处理轻量HTML场景效率很高。

  1. 安装依赖:
npm install cheerio
  1. 示例代码:
import * as cheerio from 'cheerio';
import slugify from 'slugify';

// 假设data.description是从数据库取出的原始HTML内容
const $ = cheerio.load(data.description);
const plainText = $.text(); // 提取HTML中的纯文本
const slug = slugify(plainText);

方案二:使用jsdom(模拟浏览器DOM环境)

如果需要更完整的DOM模拟(比如处理复杂HTML结构、特殊DOM行为等),可以用jsdom,它能在Node.js中模拟浏览器的DOM环境。

  1. 安装依赖:
npm install jsdom
  1. 示例代码:
import { JSDOM } from 'jsdom';
import slugify from 'slugify';

const dom = new JSDOM(data.description);
const plainText = dom.window.document.body.innerText; // 提取纯文本
const slug = slugify(plainText);

内容的提问来源于stack exchange,提问作者Korer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 04:17:01