繁体   English   中英

如何在 localhost:8000 服务器上使用 node.js?

[英]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:46const {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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM