[英]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.