账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    含browser浏览器端API的代码如何在node环境轻量执行
    64
    0
    请问下, 下面这段包含browser端API的代码如何在node环境轻量执行呢?const segmenter = new Intl.Segmenter('zh-CN', { granularity: 'word' })const input = '成都植物园'const segments = segmenter.segment(input)for (const { segment, index, isWordLike } of segments) { console.log( `字符串位置 ${index} ${index + segment.length}: ${segment} ${ isWordLike ? '[词]' : '' }` )}其中"Intl.Segmenter"是Chrome only的API
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 狂⊙帝ε 普通会员 1楼

      由于Node.js环境不支持浏览器端的API,如window, document, navigator等,所以直接在Node环境中运行含有这些API的代码会出错。

      但是,有一些方案可以模拟或模拟浏览器环境,使得含有浏览器API的代码能够在Node.js中运行:

      1. 使用jsdom库:这是一个纯JavaScript实现的DOM和HTML标准,可以在Node.js环境下模拟浏览器环境。例如:

      ``javascript const { JSDOM } = require("jsdom"); const dom = new JSDOM(<!DOCTYPE html>`); global.window = dom.window; global.document = dom.window.document;

      // 现在你可以使用浏览器的DOM API了 const h1 = document.createElement('h1'); h1.textContent = 'Hello, world!'; document.body.appendChild(h1); ```

      1. 使用puppeteerplaywright库:这两个库提供了高级API来通过DevTools协议控制Chromium浏览器,从而间接执行包含浏览器API的代码。

      2. 如果你的应用是基于React、Vue等前端框架构建的,可以使用服务器端渲染(SSR)技术,让代码在Node.js环境中运行并生成HTML。

      请注意,上述方法并不能完全复制浏览器的所有功能,对于某些特定的API或者功能可能仍需要额外处理。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部