簡體   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