当前位置: 首页 > 知识库问答 >
问题:

如何使用节点JS访问DOM元素?

东方新霁
2023-03-14

JAVASCRIPT文件

const path = require('path');
const http = require('http');
const fs = require('fs');

const dir = '../frontend/';

const server = http.createServer((request, respond) => {
      console.log(request.url);

      respond.writeHead(200, {
            'Content-Type': 'text/html',
      });

      const readStream = fs.createReadStream(dir + 'index.html', 'utf-8');
      readStream.pipe(respond);
});

const icons = 'icons/';

fs.readdir(icons, (error, files) => {
      if (error) throw error;

      files.forEach((file) => {
            if (path.extname(file) == '.svg') {
                  // I want to append this filename in the DOM Element.
                  document.querySelector('.container').innerHTML = file; // Like This
                  // console.log(file); 
            }
      });
});

server.listen(3000, 'localhost');

HTML文件

<div class="container"></div>

每当我试图执行上面的代码时,它会给我一个类似这样的错误

                  document.querySelector('.container').innerHTML = file;
                  ^

ReferenceError: document is not defined
    at D:\Framework Final\backend\server.js:26:19
    at Array.forEach (<anonymous>)
    at D:\Framework Final\backend\server.js:23:13
    at FSReqCallback.oncomplete (fs.js:171:23)

谁能告诉我怎样才能做到不出错。

共有1个答案

陈奇希
2023-03-14

在NodeJS中,document对象不存在。您不能在NodeJS中访问DOM-Nodes或DOM中的任何内容。

NodeJS是服务器端JavaScript。

如果您想要从客户端获得任何数据,您必须添加客户端代码并将数据从客户端发送到服务器。这是通过post请求完成的。在后端,您必须设置一个带有路由的服务器。要在NodeJS中设置服务器,请使用Express(经常使用)。关于它的谷歌。

 类似资料:
  • 本文向大家介绍JS访问DOM节点方法详解,包括了JS访问DOM节点方法详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS访问DOM节点方法。分享给大家供大家参考,具体如下: 查找并访问节点 你可通过若干种方法来查找您希望操作的元素: 通过使用 getElementById() 和 getElementsByTagName() 方法 通过使用一个元素节点的 parentNode、fir

  • 我正在编写一个jQuery插件,它需要能够在iframe中针对DOM元素运行。我现在只是在本地测试这个(即url是file://.../example.html),在Chrome中,我一直按“安全错误:未能从”htmliframeElement“中读取”内容文档“属性:阻止一个来源为”null“的框架访问跨来源的框架。”在Safari中,我只得到一个空文档。 如果父文件和iframe文件都从我的本

  • 基本上,我想访问一个出现在打印预览弹出窗口中的按钮,这是一个阴影dom元素。我尝试了一些我在stackoverflow周围找到的解决方案,但是它们不起作用,就像我试图构建的当前代码一样,它是: 检查元素打印

  • shadowdom结构:在上面的shadowdom结构中,我们可以在chrome中使用selenium和javascript访问各个元素,如下所示: 在Firefox中://div[@class='Style-Sconk-tabs'而不是(@隐藏)]//div/span[包含(text(),'AttrName')]/.../前驱兄弟姐妹::div/puch-icon-按钮[1]/铁图标[1] 在C

  • 问题内容: 我试图在我的Angular项目中将keyup事件附加到指令。这是指令: 这是模板中的html: 我想在链接函数中访问并将keyup事件附加到它。我知道我可以用jQuery来获得它,但是那不是Angular的方法。从dom中获取该元素的正确方法是什么? 问题答案: 您可以使用Angular’ ‘ 方法轻松完成此操作: 实时示例:http://jsfiddle.net/cherniv/S7

  • 我可以通过以下方式访问dev中的用户名: 有没有其他方法可以通过webdriver访问ShadowDOM元素?