![](/img/trans.png)
[英]How do I use a Node.js server to continuously push updates of an array to localhost
[英]How do I use node.js on a localhost:8000 server?
我的 localhost:8000 服务器上有一些纯 JS 代码和 HTML 和 CSS。 我已经安装了 node.js,我可以在 VS 代码终端上毫无问题地使用它。 但是,我想将 node.js 的文件读取机制集成到我在 localhost:8000 服务器上运行的代码中。 我想将此 node.js 代码放入我在 localhost:8000 上的网页中
const {readFileSync, promises: fsPromises} = require('fs');
function syncReadFile(filename) {
const contents = readFileSync(filename, 'utf-8');
const arr = contents.split(/\r?\n/);
console.log(arr); // 👉️ ['One', 'Two', 'Three', 'Four']
return arr;
}
syncReadFile('./locations.txt');
我尝试将其复制并粘贴到网页的 js 文件中,但是当我运行它时,控制台说
Uncaught ReferenceError: require is not defined
at window.onload (index.js:23:46)
index.js:23:46
是const {readFileSync, promises: fsPromises} = require('fs');
所在的行是。
我该如何解决?
我认为您需要更好地了解 NodeJS 的工作原理:
Node.js® 是基于 Chrome 的 V8 JavaScript 引擎构建的 JavaScript 运行时。
JavaScript 运行时(在此上下文中)是在机器中运行的程序,具有与该机器交互的工具。 在开发中,该机器的上下文是Server的上下文。
现在,JavaScript 发现它在 HTML 脚本标签中使用,这是在它的家中执行 JS 的最“普通”的方式,它最常用。 在这种情况下,JavaScript 作为Client运行。
是什么让 NodeJS 不同于在 HTML 文件中执行相同的代码,而无需安装 NodeJS 就可以执行? 在“强制”JavaScript 在后端执行之后,它就像你可以得到的一样普通,但是为了将它用作网络服务器,有一些工具需要移植、转换甚至创建,其中一些工具,像文件系统 (fs)是特定于 NodeJS 的。
而已! TLDR 是您的代码无法运行,因为它在错误的位置执行。 你可以通过多种方式解决这个问题, 比如这个,但也许你可以找到更好的路径来理解 NodeJS 是如何工作的
浏览器无法访问这样的文件系统。 Nodefs 无法在浏览器中运行
NodeJS 模块仅适用于服务器端,您不能在客户端使用它(还包括require()
语法)。
如果您想从服务器读取文件,您可能希望使用指向具有控制器的路由的 AJAX 来读取目标文件,然后 AJAX 的结果由 vanilla JS 处理客户端。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.