[英]Why this Error showing while running a file using Node.js?
我試圖使用“節點腳本”命令運行 javascript 文件“腳本”,但它確實顯示錯誤。 在使用節點之前沒有錯誤。 而且我還確認腳本鏈接具有延遲屬性,因此它將在 HTML 代碼之后加載。
PS C:\Users\user\Desktop\my port> node script
C:\Users\user\Desktop\my port\script.js:1
const tabs=document.querySelectorAll('[data-tab-target]');
^
ReferenceError: document is not defined
at Object.<anonymous> (C:\Users\user\Desktop\my port\script.js:1:12)
at Module._compile (internal/modules/cjs/loader.js:1251:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1272:10)
at Module.load (internal/modules/cjs/loader.js:1100:32)
at Function.Module._load (internal/modules/cjs/loader.js:962:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
at internal/main/run_main_module.js:17:47
這是 javascript 代碼:
const tabs= document.querySelectorAll('[data-tab-target]');
const pannels= document.querySelectorAll('[data-tab-content]');
tabs.forEach(tab => {
tab.addEventListener('click',()=>{
const target=document.querySelector(tab.dataset.tabTarget);
pannels.forEach((pannel)=>{
pannel.classList.remove('active');
});
tabs.forEach((tab)=>{
tab.classList.remove('active');
});
target.classList.add('active');
tab.classList.add('active');
});
});
document
僅在瀏覽器上可用,在服務器上運行時不可用
您要做的是在服務器環境(處理文件系統和進程等)中運行瀏覽器 JavaScript (處理window
和document
等)。 可以編寫 JavaScript 無需修改即可在兩者中運行,但每個環境都有一些“全局”變量是唯一的。 在您的代碼中, document
將是其中之一。 此代碼專門用於瀏覽器,它可以在其中讀取和寫入“文檔”(可能是您的 index.html)。 在 nodejs 中,沒有文檔,因為服務器本身並不打算顯示任何內容,而只是讀取/寫入控制台或文件。
DOM(文檔 object 模型)與瀏覽器有關,與 NodeJS 或 javascript 無關。 DOM 操作由瀏覽器提供。 您可以使用 JSDo 將 Dom 支持添加到 Node.js。 Browserify 也可能會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.