javascript - Nodejs,如何在浏览器中查看jsdom

标签 javascript node.js jsdom

如何在浏览器中查看 html? localhost:3000 上没有显示任何内容。

const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const dom = new JSDOM(`<!DOCTYPE html><body><p id="main">My First JSDOM!</p></body>`,
  {
    url: "http://localhost:3000/",
    contentType: "text/html",
    pretendToBeVisual: true,
  }
);

最佳答案

从评论中我收集到你想在 Node 中的 JSDOM 中操作 DOM,然后(也许)编写一个 html 文件(或在响应中返回它)

为此使用serialize()

https://github.com/jsdom/jsdom#serializing-the-document-with-serialize

以你的例子为例:

const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const dom = new JSDOM(`<!DOCTYPE html><body><p id="main">My First JSDOM!</p></body>`,
  {
    url: "http://localhost:3000/",
    contentType: "text/html",
    pretendToBeVisual: true,
  }
);

console.log(dom.serialize());

JSDom 将为您提供所有 HTML 的字符串。 然后您可以使用 Express.js创建一个可以返回该 HTML 的服务器,或者使用该字符串将 HTML 文件写入磁盘。

const express = require('express');
const jsdom = require("jsdom");

const { JSDOM } = jsdom;
const dom = new JSDOM(`<!DOCTYPE html><body><p id="main">My First JSDOM!</p></body>`,
  {
    url: "http://localhost:3000/",
    contentType: "text/html",
    pretendToBeVisual: true,
  }
);

const app = express();

app.get('/', (req, res) => {
  res.send(dom.serialize());
});

app.listen(8080, () => {
  console.log('Example app listening at http://localhost:8080');
});

关于javascript - Nodejs,如何在浏览器中查看jsdom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64216204/

相关文章:

javascript - 如何使文本在边框半径内居中?

javascript - ES6 和 sequelize-cli

node.js - 带有 JWT 的 Facebook Passport

javascript - JSDOM 从字符串中删除尾随的新行和空格

javascript - 为什么JSDOM改变了html结构?

haskell - 在 Haskell 中管理事件

javascript - jquery 比较 href + url 和 'contains' 问题

javascript - 在扩展程序中阅读 Chrome 浏览历史记录

javascript - Egghead 视频中的 React Redux 计数器示例

javascript - 变量 "$file"的值无效 {};上传值无效