簡體   English   中英

window is not defined error in js node.js

[英]window is not defined error in js node.js

我有這個簡單的代碼:

do {
    var SioNo = window.prompt("Nicholas ha il cancro, si o no?");
} while (SioNo.toLowerCase() != "si" && SioNo.toLowerCase() != "no");

if (SioNo.toLowerCase() == "si") {
    console.log("Hai il cancro lol");
}
else {
    console.log("ahahahah si come no");
}

這是我第一次用 js 編碼所以我真的不知道該怎么做,我正在使用 node.js 最新版本和 VSCode

這是錯誤:

參考錯誤:window 未定義

在 Object。 <匿名 (i:.Documenti\Scuola\as_20_21\Informatica\JavaScript\Esercizio1\HelloWorld.js:2:17)

在 Module._compile (internal/modules/cjs/loader.js:1068:30)

在 Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)

在 Module.load (internal/modules/cjs/loader.js:933:32)

在 Function.Module._load (internal/modules/cjs/loader.js:774:14)

在 Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)

在內部/main/run_main_module.js:17:47

window僅在瀏覽器中找到(Chrome、Firefox、Safari 等)。

使用沒有額外包的node執行上述腳本將不起作用,因為window變量在當前上下文(即您的終端窗口)中根本不存在。

如果您想在 NodeJS 中進行提示,它將接受來自終端的用戶輸入,您可以使用本機 package readline

這是使用遞歸而不是do...while循環的解決方案。

const readline = require("readline");

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

function askQuestion() {
  rl.question("Nicholas ha il cancro, si o no?", function (result) {
    if (result.toLowerCase() === "si") {
      console.log("Hai il cancro lol");
      process.exit(1);
    } else {
      console.log("ahahahah si come no");
      askQuestion();
    }
  });
}

askQuestion();

由於這是您第一次使用 JavaScript / NodeJS,我建議您先閱讀教程並閱讀文檔。 https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps

實際上我是 Node js 的新手,但我已經在尋找原因。 我發現 Node.js 中無法識別“window”,因此通過導入此庫“react”嘗試此解決方案,然后使用變量“window”並查看它是否被識別:

從“反應”導入反應;

閱讀本文了解更多詳情: https://morioh.com/p/f7b08fe33a67

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM