window is not defined 错误在 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

这是错误:

ReferenceError: window 未定义

在对象。 <匿名 (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 [作为 runMain] (internal/modules/run_main.js:72:12)

在 internal/main/run_main_module.js:17:47

window 只能在浏览器(Chrome、Firefox、Safari 等)中找到。

在没有额外包的情况下使用 node 执行上述脚本将不起作用,因为 window 变量根本不存在于当前上下文中(即您的终端 window)。

如果你想在 NodeJS 中做一个提示,它将接受来自终端的用户输入,你可以使用本机包 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的新手,但我已经搜索过原因。我发现“window”在 Node.js 中无法识别,因此通过导入此库“react”尝试此解决方案,然后使用变量“window”并查看它是否被识别:

从“react”导入 React;

阅读此内容了解更多详情: https://morioh.com/p/f7b08fe33a67